forked from external/vscode-xml
Add XQuery Linting Feature
This commit is contained in:
parent
2c6a5ceaa0
commit
ace85c8841
4 changed files with 434 additions and 61 deletions
23
src/linting/xquery-linter.ts
Normal file
23
src/linting/xquery-linter.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import { Diagnostic, DiagnosticSeverity, Position, Range } from "vscode";
|
||||
|
||||
const XQLint = require("xqlint").XQLint;
|
||||
|
||||
export class XQueryLinter {
|
||||
static SEVERITY_WARNING: number = 1;
|
||||
static SEVERITY_ERROR: number = 2;
|
||||
|
||||
lint(text: string): Diagnostic[] {
|
||||
const linter = new XQLint(text);
|
||||
const diagnostics = new Array<Diagnostic>();
|
||||
|
||||
linter.getErrors().forEach((error: any) => {
|
||||
diagnostics.push(new Diagnostic(new Range(new Position(error.pos.sl, error.pos.sc), new Position(error.pos.el, error.pos.ec)), error.message, DiagnosticSeverity.Error));
|
||||
});
|
||||
|
||||
linter.getWarnings().forEach((warning: any) => {
|
||||
diagnostics.push(new Diagnostic(new Range(new Position(warning.pos.sl, warning.pos.sc), new Position(warning.pos.el, warning.pos.ec)), warning.message, DiagnosticSeverity.Warning));
|
||||
});
|
||||
|
||||
return diagnostics;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue