mirror of
https://github.com/sasjs/lint.git
synced 2026-01-02 02:20:05 +00:00
fix(lint): ignore indentation multiple when set to zero
This commit is contained in:
@@ -14,6 +14,12 @@ describe('indentationMultiple', () => {
|
|||||||
expect(indentationMultiple.test(line, 1, config)).toEqual([])
|
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', () => {
|
it('should return an empty array when the line is not indented', () => {
|
||||||
const line = "%put 'hello';"
|
const line = "%put 'hello';"
|
||||||
const config = new LintConfig({ indentationMultiple: 2 })
|
const config = new LintConfig({ indentationMultiple: 2 })
|
||||||
|
|||||||
@@ -9,9 +9,13 @@ const message = 'Line has incorrect indentation'
|
|||||||
const test = (value: string, lineNumber: number, config?: LintConfig) => {
|
const test = (value: string, lineNumber: number, config?: LintConfig) => {
|
||||||
if (!value.startsWith(' ')) return []
|
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|$/)
|
const numberOfSpaces = value.search(/\S|$/)
|
||||||
if (numberOfSpaces % indentationMultiple === 0) return []
|
if (numberOfSpaces % indentationMultiple! === 0) return []
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
message: `${message} - ${numberOfSpaces} ${
|
message: `${message} - ${numberOfSpaces} ${
|
||||||
|
|||||||
@@ -40,6 +40,20 @@ describe('LintConfig', () => {
|
|||||||
expect(config.fileLintRules[0].type).toEqual(LintRuleType.File)
|
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', () => {
|
it('should create an instance with all flags set', () => {
|
||||||
const config = new LintConfig({
|
const config = new LintConfig({
|
||||||
noTrailingSpaces: true,
|
noTrailingSpaces: true,
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ export class LintConfig {
|
|||||||
readonly lineLintRules: LineLintRule[] = []
|
readonly lineLintRules: LineLintRule[] = []
|
||||||
readonly fileLintRules: FileLintRule[] = []
|
readonly fileLintRules: FileLintRule[] = []
|
||||||
readonly pathLintRules: PathLintRule[] = []
|
readonly pathLintRules: PathLintRule[] = []
|
||||||
readonly maxLineLength = 80
|
readonly maxLineLength: number = 80
|
||||||
readonly indentationMultiple = 2
|
readonly indentationMultiple: number = 2
|
||||||
|
|
||||||
constructor(json?: any) {
|
constructor(json?: any) {
|
||||||
if (json?.noTrailingSpaces) {
|
if (json?.noTrailingSpaces) {
|
||||||
@@ -40,8 +40,8 @@ export class LintConfig {
|
|||||||
this.lineLintRules.push(maxLineLength)
|
this.lineLintRules.push(maxLineLength)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (json?.indentationMultiple) {
|
if (!isNaN(json?.indentationMultiple)) {
|
||||||
this.indentationMultiple = json.indentationMultiple
|
this.indentationMultiple = json.indentationMultiple as number
|
||||||
this.lineLintRules.push(indentationMultiple)
|
this.lineLintRules.push(indentationMultiple)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user