mirror of
https://github.com/sasjs/lint.git
synced 2025-12-10 17:34:36 +00:00
feat: customise the defaultHeader
This commit is contained in:
@@ -19,7 +19,7 @@ const processContent = (config: LintConfig, content: string): string => {
|
||||
config.fileLintRules
|
||||
.filter((r) => !!r.fix)
|
||||
.forEach((rule) => {
|
||||
processedContent = rule.fix!(processedContent)
|
||||
processedContent = rule.fix!(processedContent, config)
|
||||
})
|
||||
|
||||
return processedContent
|
||||
|
||||
@@ -3,8 +3,7 @@ import { LineEndings } from '../../types/LineEndings'
|
||||
import { FileLintRule } from '../../types/LintRule'
|
||||
import { LintRuleType } from '../../types/LintRuleType'
|
||||
import { Severity } from '../../types/Severity'
|
||||
|
||||
const DoxygenHeader = `/**{lineEnding} @file{lineEnding} @brief <Your brief here>{lineEnding} <h4> SAS Macros </h4>{lineEnding}**/`
|
||||
import { DefaultLintConfiguration } from '../../utils/getLintConfig'
|
||||
|
||||
const name = 'hasDoxygenHeader'
|
||||
const description =
|
||||
@@ -61,10 +60,11 @@ const fix = (value: string, config?: LintConfig): string => {
|
||||
} else if (result[0].message == messageForSingleAsterisk)
|
||||
return value.replace('/*', '/**')
|
||||
|
||||
config = config || new LintConfig(DefaultLintConfiguration)
|
||||
const lineEndingConfig = config?.lineEndings || LineEndings.LF
|
||||
const lineEnding = lineEndingConfig === LineEndings.LF ? '\n' : '\r\n'
|
||||
|
||||
return `${DoxygenHeader.replace(
|
||||
return `${config?.defaultHeader.replace(
|
||||
/{lineEnding}/g,
|
||||
lineEnding
|
||||
)}${lineEnding}${value}`
|
||||
|
||||
@@ -16,6 +16,7 @@ import {
|
||||
import { lowerCaseFileNames, noSpacesInFileNames } from '../rules/path'
|
||||
import { LineEndings } from './LineEndings'
|
||||
import { FileLintRule, LineLintRule, PathLintRule } from './LintRule'
|
||||
import { getDefaultHeader } from '../utils'
|
||||
|
||||
/**
|
||||
* LintConfig is the logical representation of the .sasjslint file.
|
||||
@@ -32,6 +33,7 @@ export class LintConfig {
|
||||
readonly maxLineLength: number = 80
|
||||
readonly indentationMultiple: number = 2
|
||||
readonly lineEndings: LineEndings = LineEndings.LF
|
||||
readonly defaultHeader: string = getDefaultHeader()
|
||||
|
||||
constructor(json?: any) {
|
||||
if (json?.ignoreList) {
|
||||
@@ -87,6 +89,10 @@ export class LintConfig {
|
||||
this.fileLintRules.push(hasDoxygenHeader)
|
||||
}
|
||||
|
||||
if (json?.defaultHeader) {
|
||||
this.defaultHeader = json.defaultHeader
|
||||
}
|
||||
|
||||
if (json?.noSpacesInFileNames) {
|
||||
this.pathLintRules.push(noSpacesInFileNames)
|
||||
}
|
||||
|
||||
@@ -3,6 +3,9 @@ import { LintConfig } from '../types/LintConfig'
|
||||
import { readFile } from '@sasjs/utils/file'
|
||||
import { getProjectRoot } from './getProjectRoot'
|
||||
|
||||
export const getDefaultHeader = () =>
|
||||
`/**{lineEnding} @file{lineEnding} @brief <Your brief here>{lineEnding} <h4> SAS Macros </h4>{lineEnding}**/`
|
||||
|
||||
/**
|
||||
* Default configuration that is used when a .sasjslint file is not found
|
||||
*/
|
||||
@@ -18,7 +21,8 @@ export const DefaultLintConfiguration = {
|
||||
hasMacroNameInMend: true,
|
||||
noNestedMacros: true,
|
||||
hasMacroParentheses: true,
|
||||
strictMacroDefinition: true
|
||||
strictMacroDefinition: true,
|
||||
defaultHeader: getDefaultHeader()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user