1
0
mirror of https://github.com/sasjs/lint.git synced 2025-12-10 17:34:36 +00:00

fix(lint): ignore indentation multiple when set to zero

This commit is contained in:
Krishna Acondy
2021-03-29 09:40:32 +01:00
parent f1adcb8cb4
commit 52b63bac58
4 changed files with 30 additions and 6 deletions

View File

@@ -14,6 +14,12 @@ describe('indentationMultiple', () => {
expect(indentationMultiple.test(line, 1, config)).toEqual([])
})
it('should ignore indentation when the multiple is set to 0', () => {
const line = " %put 'hello';"
const config = new LintConfig({ indentationMultiple: 0 })
expect(indentationMultiple.test(line, 1, config)).toEqual([])
})
it('should return an empty array when the line is not indented', () => {
const line = "%put 'hello';"
const config = new LintConfig({ indentationMultiple: 2 })

View File

@@ -9,9 +9,13 @@ const message = 'Line has incorrect indentation'
const test = (value: string, lineNumber: number, config?: LintConfig) => {
if (!value.startsWith(' ')) return []
const indentationMultiple = config?.indentationMultiple || 2
const indentationMultiple = isNaN(config?.indentationMultiple as number)
? 2
: config?.indentationMultiple
if (indentationMultiple === 0) return []
const numberOfSpaces = value.search(/\S|$/)
if (numberOfSpaces % indentationMultiple === 0) return []
if (numberOfSpaces % indentationMultiple! === 0) return []
return [
{
message: `${message} - ${numberOfSpaces} ${

View File

@@ -40,6 +40,20 @@ describe('LintConfig', () => {
expect(config.fileLintRules[0].type).toEqual(LintRuleType.File)
})
it('should create an instance with the indentation multiple set', () => {
const config = new LintConfig({ indentationMultiple: 5 })
expect(config).toBeTruthy()
expect(config.indentationMultiple).toEqual(5)
})
it('should create an instance with the indentation multiple turned off', () => {
const config = new LintConfig({ indentationMultiple: 0 })
expect(config).toBeTruthy()
expect(config.indentationMultiple).toEqual(0)
})
it('should create an instance with all flags set', () => {
const config = new LintConfig({
noTrailingSpaces: true,

View File

@@ -19,8 +19,8 @@ export class LintConfig {
readonly lineLintRules: LineLintRule[] = []
readonly fileLintRules: FileLintRule[] = []
readonly pathLintRules: PathLintRule[] = []
readonly maxLineLength = 80
readonly indentationMultiple = 2
readonly maxLineLength: number = 80
readonly indentationMultiple: number = 2
constructor(json?: any) {
if (json?.noTrailingSpaces) {
@@ -40,8 +40,8 @@ export class LintConfig {
this.lineLintRules.push(maxLineLength)
}
if (json?.indentationMultiple) {
this.indentationMultiple = json.indentationMultiple
if (!isNaN(json?.indentationMultiple)) {
this.indentationMultiple = json.indentationMultiple as number
this.lineLintRules.push(indentationMultiple)
}