mirror of
https://github.com/sasjs/lint.git
synced 2025-12-10 17:34:36 +00:00
165 lines
6.4 KiB
JSON
165 lines
6.4 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://github.com/sasjs/lint/blob/main/sasjslint-schema.json",
|
|
"type": "object",
|
|
"title": "SASjs Lint Config File",
|
|
"description": "The SASjs Lint Config file provides the settings for customising SAS code style in your project.",
|
|
"default": {
|
|
"noEncodedPasswords": true,
|
|
"hasDoxygenHeader": true,
|
|
"defaultHeader": "/**{lineEnding} @file{lineEnding} @brief <Your brief here>{lineEnding} <h4> SAS Macros </h4>{lineEnding}**/",
|
|
"hasMacroNameInMend": false,
|
|
"hasMacroParentheses": true,
|
|
"indentationMultiple": 2,
|
|
"lowerCaseFileNames": true,
|
|
"maxLineLength": 80,
|
|
"noNestedMacros": true,
|
|
"noSpacesInFileNames": true,
|
|
"noTabIndentation": true,
|
|
"noTrailingSpaces": true,
|
|
"lineEndings": "lf",
|
|
"strictMacroDefinition": true,
|
|
"ignoreList": ["sajsbuild", "sasjsresults"]
|
|
},
|
|
"examples": [
|
|
{
|
|
"noTrailingSpaces": true,
|
|
"noEncodedPasswords": true,
|
|
"hasDoxygenHeader": true,
|
|
"noSpacesInFileNames": true,
|
|
"lowerCaseFileNames": true,
|
|
"maxLineLength": 80,
|
|
"noTabIndentation": true,
|
|
"indentationMultiple": 4,
|
|
"hasMacroNameInMend": true,
|
|
"noNestedMacros": true,
|
|
"hasMacroParentheses": true,
|
|
"lineEndings": "crlf",
|
|
"strictMacroDefinition": true,
|
|
"ignoreList": ["sajsbuild", "sasjsresults"]
|
|
}
|
|
],
|
|
"properties": {
|
|
"noEncodedPasswords": {
|
|
"$id": "#/properties/noEncodedPasswords",
|
|
"type": "boolean",
|
|
"title": "noEncodedPasswords",
|
|
"description": "Enforces no encoded passwords such as {SAS001} or {SASENC} in lines of SAS code. Shows an error when they are present.",
|
|
"default": true,
|
|
"examples": [true, false]
|
|
},
|
|
"hasDoxygenHeader": {
|
|
"$id": "#/properties/hasDoxygenHeader",
|
|
"type": "boolean",
|
|
"title": "hasDoxygenHeader",
|
|
"description": "Enforces the presence of a Doxygen header in the form of a comment block at the start of each SAS file. Shows a warning when one is absent.",
|
|
"default": true,
|
|
"examples": [true, false]
|
|
},
|
|
"defaultHeader": {
|
|
"$id": "#/properties/defaultHeader",
|
|
"type": "string",
|
|
"title": "defaultHeader",
|
|
"description": "This sets the default program header - applies when a SAS program does NOT begin with `/**`.",
|
|
"default": "/**{lineEnding} @file{lineEnding} @brief <Your brief here>{lineEnding} <h4> SAS Macros </h4>{lineEnding}**/",
|
|
"examples": []
|
|
},
|
|
"hasMacroNameInMend": {
|
|
"$id": "#/properties/hasMacroNameInMend",
|
|
"type": "boolean",
|
|
"title": "hasMacroNameInMend",
|
|
"description": "Enforces the presence of macro names in %mend statements. Shows a warning for %mend statements with missing or mismatched macro names.",
|
|
"default": false,
|
|
"examples": [true, false]
|
|
},
|
|
"hasMacroParentheses": {
|
|
"$id": "#/properties/hasMacroParentheses",
|
|
"type": "boolean",
|
|
"title": "hasMacroParentheses",
|
|
"description": "Enforces the presence of parentheses in macro definitions. Shows a warning for each macro defined without parentheses, or with spaces between the macro name and the opening parenthesis.",
|
|
"default": true,
|
|
"examples": [true, false]
|
|
},
|
|
"indentationMultiple": {
|
|
"$id": "#/properties/indentationMultiple",
|
|
"type": "number",
|
|
"title": "indentationMultiple",
|
|
"description": "Enforces a configurable multiple for the number of spaces for indentation. Shows a warning for lines that are not indented by a multiple of this number.",
|
|
"default": 2,
|
|
"examples": [2, 3, 4]
|
|
},
|
|
"lowerCaseFileNames": {
|
|
"$id": "#/properties/lowerCaseFileNames",
|
|
"type": "boolean",
|
|
"title": "lowerCaseFileNames",
|
|
"description": "Enforces no uppercase characters in file names. Shows a warning when they are present.",
|
|
"default": true,
|
|
"examples": [true, false]
|
|
},
|
|
"maxLineLength": {
|
|
"$id": "#/properties/maxLineLength",
|
|
"type": "number",
|
|
"title": "maxLineLength",
|
|
"description": "Enforces a configurable maximum line length. Shows a warning for lines exceeding this length.",
|
|
"default": 80,
|
|
"examples": [60, 80, 120]
|
|
},
|
|
"noNestedMacros": {
|
|
"$id": "#/properties/noNestedMacros",
|
|
"type": "boolean",
|
|
"title": "noNestedMacros",
|
|
"description": "Enforces the absence of nested macro definitions. Shows a warning for each nested macro definition.",
|
|
"default": true,
|
|
"examples": [true, false]
|
|
},
|
|
"noSpacesInFileNames": {
|
|
"$id": "#/properties/noSpacesInFileNames",
|
|
"type": "boolean",
|
|
"title": "noSpacesInFileNames",
|
|
"description": "Enforces no spaces in file names. Shows a warning when they are present.",
|
|
"default": true,
|
|
"examples": [true, false]
|
|
},
|
|
"noTabIndentation": {
|
|
"$id": "#/properties/noTabIndentation",
|
|
"type": "boolean",
|
|
"title": "noTabIndentation",
|
|
"description": "Enforces no indentation using tabs. Shows a warning when a line starts with a tab.",
|
|
"default": true,
|
|
"examples": [true, false]
|
|
},
|
|
"noTrailingSpaces": {
|
|
"$id": "#/properties/noTrailingSpaces",
|
|
"type": "boolean",
|
|
"title": "noTrailingSpaces",
|
|
"description": "Enforces no trailing spaces in lines of SAS code. Shows a warning when they are present.",
|
|
"default": true,
|
|
"examples": [true, false]
|
|
},
|
|
"lineEndings": {
|
|
"$id": "#/properties/lineEndings",
|
|
"type": "string",
|
|
"title": "lineEndings",
|
|
"description": "Enforces the configured terminating character for each line. Shows a warning when incorrect line endings are present.",
|
|
"default": "lf",
|
|
"examples": ["lf", "crlf"]
|
|
},
|
|
"strictMacroDefinition": {
|
|
"$id": "#/properties/strictMacroDefinition",
|
|
"type": "boolean",
|
|
"title": "strictMacroDefinition",
|
|
"description": "Enforces Macro Definition syntax. Shows a warning when incorrect syntax is used.",
|
|
"default": true,
|
|
"examples": [true, false]
|
|
},
|
|
"ignoreList": {
|
|
"$id": "#/properties/ignoreList",
|
|
"type": "array",
|
|
"title": "ignoreList",
|
|
"description": "An array of paths or path patterns to ignore when linting. Any files or matching patterns in the .gitignore file will also be ignored.",
|
|
"default": ["sasjsbuild/", "sasjsresults/"],
|
|
"examples": ["sasjs/tests", "tmp/scratch.sas"]
|
|
}
|
|
}
|
|
}
|