{ "$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, "hasMacroNameInMend": false, "hasMacroParentheses": true, "indentationMultiple": 2, "lowerCaseFileNames": true, "maxLineLength": 80, "noNestedMacros": true, "noSpacesInFileNames": true, "noTabIndentation": true, "noTrailingSpaces": true, "lineEndings": "lf" }, "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" } ], "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] }, "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"] } } }