diff --git a/server/src/global.ts b/server/src/global.ts deleted file mode 100644 index 7db9288..0000000 --- a/server/src/global.ts +++ /dev/null @@ -1,16 +0,0 @@ -declare global { - interface String { - leftTrim: () => string - rightTrim: () => string - } -} - -String.prototype.leftTrim = function(): string { - return this.replace(/^\s+/,'') -} - -String.prototype.rightTrim = function(): string { - return this.replace(/\s+$/, '') -} - -export {} \ No newline at end of file diff --git a/server/src/linter.ts b/server/src/linter.ts index 1f2c4e8..c856b73 100644 --- a/server/src/linter.ts +++ b/server/src/linter.ts @@ -1,5 +1,4 @@ import { conf, connection, documents } from './server' -import './global' import { TextDocument, Diagnostic, DiagnosticSeverity, Range } from 'vscode-languageserver' import { execSync } from 'child_process' import * as path from 'path' @@ -126,8 +125,7 @@ function lint(uri: string, lines: string[], includes: {lineNum: number, match: R out = e.stdout.toString() } - const diagnostics: {[uri: string]: Diagnostic[]} = {} - diagnostics[uri] = [] + const diagnostics: {[uri: string]: Diagnostic[]} = {uri: []} includes.forEach(obj => { diagnostics[absPath(uri, obj.match[1])] = [] }) @@ -141,12 +139,10 @@ function lint(uri: string, lines: string[], includes: {lineNum: number, match: R message: replaceWord(msg), source: 'mc-glsl' } - diagnostics[file ? uri : file].push(diag) + //diagnostics[file ? uri : file].push(diag) }) - daigsArray(diagnostics).forEach(d => { - connection.sendDiagnostics({uri: d.uri, diagnostics: d.diag}) - }) + daigsArray(diagnostics).forEach(d => connection.sendDiagnostics({uri: d.uri, diagnostics: d.diag})) } const daigsArray = (diags: {[uri: string]: Diagnostic[]}) => Object.keys(diags).map(uri => ({uri: 'file://' + uri, diag: diags[uri]})) @@ -157,19 +153,12 @@ const filterMatches = (output: string) => output .map(s => s.match(reDiag)) .filter(match => match && match.length === 5) -function replaceWord(msg: string) { - for (const token of Object.keys(tokens)) { - if (msg.includes(token)) { - msg = msg.replace(token, tokens[token]) - } - } - return msg -} +const replaceWord = (msg: string) => Object.entries(tokens).reduce((acc, [key, value]) => acc.replace(key, value), msg) function calcRange(lineNum: number, uri: string): Range { const lines = documents.get('file://' + uri).getText().split('\n') const line = lines[lineNum] - const startOfLine = line.length - line.leftTrim().length - const endOfLine = line.slice(0, line.indexOf('//')).rightTrim().length + 1 + const startOfLine = line.length - line.trimLeft().length + const endOfLine = line.slice(0, line.indexOf('//')).trimRight().length + 1 return Range.create(lineNum, startOfLine, lineNum, endOfLine) } \ No newline at end of file diff --git a/server/tsconfig.json b/server/tsconfig.json index 37a0516..d4959b4 100644 --- a/server/tsconfig.json +++ b/server/tsconfig.json @@ -6,7 +6,7 @@ "sourceMap": true, "outDir": "out", "rootDir": "src", - "lib": [ "es6" ] + "lib": [ "es6", "es2017" ] }, "include": [ "src"