@herb-tools/language-server 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,35 +11,40 @@ class LinterService {
11
11
  this.linter = new linter_1.Linter(node_wasm_1.Herb);
12
12
  }
13
13
  async lintDocument(textDocument) {
14
- var _a, _b;
14
+ var _a, _b, _c, _d;
15
15
  const settings = await this.settings.getDocumentSettings(textDocument.uri);
16
16
  const linterEnabled = (_b = (_a = settings === null || settings === void 0 ? void 0 : settings.linter) === null || _a === void 0 ? void 0 : _a.enabled) !== null && _b !== void 0 ? _b : true;
17
17
  if (!linterEnabled) {
18
18
  return { diagnostics: [] };
19
19
  }
20
20
  const lintResult = this.linter.lint(textDocument.getText(), { fileName: textDocument.uri });
21
- const diagnostics = [];
22
- lintResult.offenses.forEach(offense => {
23
- const severity = offense.severity === "error"
24
- ? node_1.DiagnosticSeverity.Error
25
- : node_1.DiagnosticSeverity.Warning;
21
+ const excludedRules = (_d = (_c = settings === null || settings === void 0 ? void 0 : settings.linter) === null || _c === void 0 ? void 0 : _c.excludedRules) !== null && _d !== void 0 ? _d : ["parser-no-errors"];
22
+ const offenses = lintResult.offenses.filter(offense => !excludedRules.includes(offense.rule));
23
+ const diagnostics = offenses.map(offense => {
26
24
  const range = node_1.Range.create(node_1.Position.create(offense.location.start.line - 1, offense.location.start.column), node_1.Position.create(offense.location.end.line - 1, offense.location.end.column));
27
25
  const codeDescription = {
28
26
  href: `https://herb-tools.dev/linter/rules/${offense.rule}`
29
27
  };
30
- const diagnostic = {
28
+ return {
31
29
  source: this.source,
32
- severity,
30
+ severity: this.lintToDignosticSeverity(offense.severity),
33
31
  range,
34
32
  message: offense.message,
35
33
  code: offense.rule,
36
34
  data: { rule: offense.rule },
37
35
  codeDescription
38
36
  };
39
- diagnostics.push(diagnostic);
40
37
  });
41
38
  return { diagnostics };
42
39
  }
40
+ lintToDignosticSeverity(severity) {
41
+ switch (severity) {
42
+ case "error": return node_1.DiagnosticSeverity.Error;
43
+ case "warning": return node_1.DiagnosticSeverity.Warning;
44
+ case "info": return node_1.DiagnosticSeverity.Information;
45
+ case "hint": return node_1.DiagnosticSeverity.Hint;
46
+ }
47
+ }
43
48
  }
44
49
  exports.LinterService = LinterService;
45
50
  //# sourceMappingURL=linter_service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"linter_service.js","sourceRoot":"","sources":["../src/linter_service.ts"],"names":[],"mappings":";;;AAAA,qDAA6G;AAE7G,+CAA2C;AAC3C,qDAA4C;AAQ5C,MAAa,aAAa;IAKxB,YAAY,QAAkB;QAHb,WAAM,GAAG,cAAc,CAAA;QAItC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,gBAAI,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,YAA0B;;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QAC1E,MAAM,aAAa,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,0CAAE,OAAO,mCAAI,IAAI,CAAA;QAEvD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;QAC5B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3F,MAAM,WAAW,GAAiB,EAAE,CAAA;QAEpC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;gBAC3C,CAAC,CAAC,yBAAkB,CAAC,KAAK;gBAC1B,CAAC,CAAC,yBAAkB,CAAC,OAAO,CAAA;YAE9B,MAAM,KAAK,GAAG,YAAK,CAAC,MAAM,CACxB,eAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAC/E,eAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAC5E,CAAA;YAED,MAAM,eAAe,GAAoB;gBACvC,IAAI,EAAE,uCAAuC,OAAO,CAAC,IAAI,EAAE;aAC5D,CAAA;YAED,MAAM,UAAU,GAAe;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ;gBACR,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;gBAC5B,eAAe;aAChB,CAAA;YAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,WAAW,EAAE,CAAA;IACxB,CAAC;CACF;AAlDD,sCAkDC"}
1
+ {"version":3,"file":"linter_service.js","sourceRoot":"","sources":["../src/linter_service.ts"],"names":[],"mappings":";;;AAAA,qDAA6G;AAG7G,+CAA2C;AAC3C,qDAA4C;AAU5C,MAAa,aAAa;IAKxB,YAAY,QAAkB;QAHb,WAAM,GAAG,cAAc,CAAA;QAItC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,gBAAI,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,YAA0B;;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QAC1E,MAAM,aAAa,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,0CAAE,OAAO,mCAAI,IAAI,CAAA;QAEvD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;QAC5B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3F,MAAM,aAAa,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,0CAAE,aAAa,mCAAI,CAAC,kBAAkB,CAAC,CAAA;QAC7E,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAE7F,MAAM,WAAW,GAAiB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACvD,MAAM,KAAK,GAAG,YAAK,CAAC,MAAM,CACxB,eAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAC/E,eAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAC5E,CAAA;YAED,MAAM,eAAe,GAAoB;gBACvC,IAAI,EAAE,uCAAuC,OAAO,CAAC,IAAI,EAAE;aAC5D,CAAA;YAED,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACxD,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;gBAC5B,eAAe;aAChB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,WAAW,EAAE,CAAA;IACxB,CAAC;IAEO,uBAAuB,CAAC,QAAsB;QACpD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,OAAO,CAAC,CAAC,OAAO,yBAAkB,CAAC,KAAK,CAAA;YAC7C,KAAK,SAAS,CAAC,CAAC,OAAO,yBAAkB,CAAC,OAAO,CAAA;YACjD,KAAK,MAAM,CAAC,CAAC,OAAO,yBAAkB,CAAC,WAAW,CAAA;YAClD,KAAK,MAAM,CAAC,CAAC,OAAO,yBAAkB,CAAC,IAAI,CAAA;QAC7C,CAAC;IACH,CAAC;CACF;AAtDD,sCAsDC"}
package/dist/settings.js CHANGED
@@ -9,7 +9,8 @@ class Settings {
9
9
  // but could happen with other clients.
10
10
  this.defaultSettings = {
11
11
  linter: {
12
- enabled: true
12
+ enabled: true,
13
+ excludedRules: ["parser-no-errors"] // Default exclusion since parser errors are handled by ParserService
13
14
  },
14
15
  formatter: {
15
16
  enabled: false,
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AACA,qDAA4D;AAgB5D,MAAa,QAAQ;IAyBnB,YAAY,MAAwB,EAAE,UAAsB;QAxB5D,uGAAuG;QACvG,wGAAwG;QACxG,uCAAuC;QACvC,oBAAe,GAAiB;YAC9B,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;aACd;YACD,SAAS,EAAE;gBACT,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,gCAAoB,CAAC,WAAW;gBAC7C,aAAa,EAAE,gCAAoB,CAAC,aAAa;aAClD;SACF,CAAA;QACD,mBAAc,GAAiB,IAAI,CAAC,eAAe,CAAA;QACnD,qBAAgB,GAAwC,IAAI,GAAG,EAAE,CAAA;QAEjE,+BAA0B,GAAG,KAAK,CAAA;QAClC,iCAA4B,GAAG,KAAK,CAAA;QACpC,8CAAyC,GAAG,KAAK,CAAA;QAO/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAE5B,iEAAiE;QACjE,8CAA8C;QAC9C,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QAEhH,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC,CACpC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,gBAAgB,CAC9E,CAAA;QAED,IAAI,CAAC,yCAAyC,GAAG,CAAC,CAAC,CACjD,IAAI,CAAC,YAAY,CAAC,YAAY;YAC9B,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,kBAAkB;YACjD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,kBAAkB,CACrE,CAAA;IACH,CAAC;IAED,IAAI,WAAW;;QACb,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,0CAAE,EAAE,CAAC,CAAC,CAAC,0CAAE,GAAG,KAAI,EAAE,CAAA;IACvD,CAAC;IAED,mBAAmB,CAAC,QAAgB;QAClC,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBAClD,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,oBAAoB;aAC9B,CAAC,CAAA;YAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAnED,4BAmEC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AACA,qDAA4D;AAiB5D,MAAa,QAAQ;IA0BnB,YAAY,MAAwB,EAAE,UAAsB;QAzB5D,uGAAuG;QACvG,wGAAwG;QACxG,uCAAuC;QACvC,oBAAe,GAAiB;YAC9B,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,CAAC,kBAAkB,CAAC,CAAC,qEAAqE;aAC1G;YACD,SAAS,EAAE;gBACT,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,gCAAoB,CAAC,WAAW;gBAC7C,aAAa,EAAE,gCAAoB,CAAC,aAAa;aAClD;SACF,CAAA;QACD,mBAAc,GAAiB,IAAI,CAAC,eAAe,CAAA;QACnD,qBAAgB,GAAwC,IAAI,GAAG,EAAE,CAAA;QAEjE,+BAA0B,GAAG,KAAK,CAAA;QAClC,iCAA4B,GAAG,KAAK,CAAA;QACpC,8CAAyC,GAAG,KAAK,CAAA;QAO/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAE5B,iEAAiE;QACjE,8CAA8C;QAC9C,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QAEhH,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC,CACpC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,gBAAgB,CAC9E,CAAA;QAED,IAAI,CAAC,yCAAyC,GAAG,CAAC,CAAC,CACjD,IAAI,CAAC,YAAY,CAAC,YAAY;YAC9B,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,kBAAkB;YACjD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,kBAAkB,CACrE,CAAA;IACH,CAAC;IAED,IAAI,WAAW;;QACb,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,0CAAE,EAAE,CAAC,CAAC,CAAC,0CAAE,GAAG,KAAI,EAAE,CAAA;IACvD,CAAC;IAED,mBAAmB,CAAC,QAAgB;QAClC,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBAClD,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,oBAAoB;aAC9B,CAAC,CAAA;YAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AApED,4BAoEC"}
@@ -10,4 +10,5 @@ export declare class LinterService {
10
10
  private linter;
11
11
  constructor(settings: Settings);
12
12
  lintDocument(textDocument: TextDocument): Promise<LintServiceResult>;
13
+ private lintToDignosticSeverity;
13
14
  }
@@ -5,6 +5,7 @@ export interface HerbSettings {
5
5
  };
6
6
  linter?: {
7
7
  enabled?: boolean;
8
+ excludedRules?: string[];
8
9
  };
9
10
  formatter?: {
10
11
  enabled?: boolean;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@herb-tools/language-server",
3
3
  "description": "Herb HTML+ERB Language Tools and Language Server Protocol integration.",
4
- "version": "0.4.3",
4
+ "version": "0.5.0",
5
5
  "author": "Marco Roth",
6
6
  "license": "MIT",
7
7
  "engines": {
@@ -34,9 +34,8 @@
34
34
  "clean": "rimraf dist",
35
35
  "build": "yarn clean && tsc -b && rollup -c",
36
36
  "dev": "tsc -b -w",
37
- "test": "vitest",
38
- "test:run": "vitest run",
39
- "prepublishOnly": "yarn clean && yarn build && yarn test:run"
37
+ "test": "vitest run",
38
+ "prepublishOnly": "yarn clean && yarn build && yarn test"
40
39
  },
41
40
  "files": [
42
41
  "package.json",
@@ -46,9 +45,9 @@
46
45
  "dist/"
47
46
  ],
48
47
  "dependencies": {
49
- "@herb-tools/formatter": "0.4.3",
50
- "@herb-tools/linter": "0.4.3",
51
- "@herb-tools/node-wasm": "0.4.3",
48
+ "@herb-tools/formatter": "0.5.0",
49
+ "@herb-tools/linter": "0.5.0",
50
+ "@herb-tools/node-wasm": "0.5.0",
52
51
  "dedent": "^1.6.0",
53
52
  "vscode-languageserver": "^9.0.1",
54
53
  "vscode-languageserver-textdocument": "^1.0.12"
@@ -1,10 +1,13 @@
1
1
  import { Diagnostic, DiagnosticSeverity, Range, Position, CodeDescription } from "vscode-languageserver/node"
2
2
  import { TextDocument } from "vscode-languageserver-textdocument"
3
+
3
4
  import { Linter } from "@herb-tools/linter"
4
5
  import { Herb } from "@herb-tools/node-wasm"
5
6
 
6
7
  import { Settings } from "./settings"
7
8
 
9
+ import type { LintSeverity } from "@herb-tools/linter"
10
+
8
11
  export interface LintServiceResult {
9
12
  diagnostics: Diagnostic[]
10
13
  }
@@ -28,13 +31,10 @@ export class LinterService {
28
31
  }
29
32
 
30
33
  const lintResult = this.linter.lint(textDocument.getText(), { fileName: textDocument.uri })
31
- const diagnostics: Diagnostic[] = []
32
-
33
- lintResult.offenses.forEach(offense => {
34
- const severity = offense.severity === "error"
35
- ? DiagnosticSeverity.Error
36
- : DiagnosticSeverity.Warning
34
+ const excludedRules = settings?.linter?.excludedRules ?? ["parser-no-errors"]
35
+ const offenses = lintResult.offenses.filter(offense => !excludedRules.includes(offense.rule))
37
36
 
37
+ const diagnostics: Diagnostic[] = offenses.map(offense => {
38
38
  const range = Range.create(
39
39
  Position.create(offense.location.start.line - 1, offense.location.start.column),
40
40
  Position.create(offense.location.end.line - 1, offense.location.end.column),
@@ -44,19 +44,26 @@ export class LinterService {
44
44
  href: `https://herb-tools.dev/linter/rules/${offense.rule}`
45
45
  }
46
46
 
47
- const diagnostic: Diagnostic = {
47
+ return {
48
48
  source: this.source,
49
- severity,
49
+ severity: this.lintToDignosticSeverity(offense.severity),
50
50
  range,
51
51
  message: offense.message,
52
52
  code: offense.rule,
53
53
  data: { rule: offense.rule },
54
54
  codeDescription
55
55
  }
56
-
57
- diagnostics.push(diagnostic)
58
56
  })
59
57
 
60
58
  return { diagnostics }
61
59
  }
60
+
61
+ private lintToDignosticSeverity(severity: LintSeverity): DiagnosticSeverity {
62
+ switch (severity) {
63
+ case "error": return DiagnosticSeverity.Error
64
+ case "warning": return DiagnosticSeverity.Warning
65
+ case "info": return DiagnosticSeverity.Information
66
+ case "hint": return DiagnosticSeverity.Hint
67
+ }
68
+ }
62
69
  }
package/src/settings.ts CHANGED
@@ -7,6 +7,7 @@ export interface HerbSettings {
7
7
  }
8
8
  linter?: {
9
9
  enabled?: boolean
10
+ excludedRules?: string[]
10
11
  }
11
12
  formatter?: {
12
13
  enabled?: boolean
@@ -21,7 +22,8 @@ export class Settings {
21
22
  // but could happen with other clients.
22
23
  defaultSettings: HerbSettings = {
23
24
  linter: {
24
- enabled: true
25
+ enabled: true,
26
+ excludedRules: ["parser-no-errors"] // Default exclusion since parser errors are handled by ParserService
25
27
  },
26
28
  formatter: {
27
29
  enabled: false,