Creedengo rules specifications

This project contains the specifications of all Creedengo rules, for all languages.

Structure

Rules are organized by folder based on their ID in the src/main/rules[root rules folder]. Each of these folders contains a file with the metadata of the rule, and description by language.

The metadata file uses the format supported by the SonarSource Analyzers Commons library. To find out what values can be put there, we advise you to use the official SonarQube documentation, and to rely on already existing files.

Example
📂 src/main/rules
  📂  GCI104
    📂  java
      📄 GCI104.asciidoc
      📄 GCI104.json
    📂  php
      📄 GCI104.asciidoc
    📂  python
      📄 GCI104.asciidoc
    📂  GCI104.json
  📁 ...

To specify metadata for a given language (for example deprecate a rule only for a single language), it is possible to create a json file in the language folder, and this will be merged with the common file during build. The keys in the specific file have priority, and it is possible to add new ones but not to delete them from the global one.

Description language

The description of the rules uses the ASCIIDOC format (with Markdown compatibility) in order to allow the inclusion of other pages (this feature is not available with Markdown).

See:

🚀 Getting Started

You can quickly explore Creedengo plugins using Docker. Refer to the "Getting Started" section of each plugin for detailed instructions: