From c4ad024d3d3615110f9e4b1adb1b0dbd5ba05e3c Mon Sep 17 00:00:00 2001 From: Noah Santschi-Cooney Date: Mon, 22 Apr 2019 17:32:01 +0100 Subject: [PATCH] Sync point --- package.json | 2 +- server/src/linter.ts | 27 +++++++++++++++------------ server/src/utils.ts | 14 +++++++++----- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index bf9ae4a..ac515c4 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "vscode-mc-shader", "displayName": "Minecraft GLSL Shaders", "description": "A Visual Studio Code extension for linting/etc Minecraft GLSL Shaders", - "version": "0.8.5", + "version": "0.9.5", "publisher": "Strum355", "author": "Noah Santschi-Cooney (Strum355)", "license": "MIT", diff --git a/server/src/linter.ts b/server/src/linter.ts index f393791..14e5495 100644 --- a/server/src/linter.ts +++ b/server/src/linter.ts @@ -1,14 +1,14 @@ -import { Diagnostic, DiagnosticSeverity, Range } from 'vscode-languageserver' -import { connection } from './server' -import { execSync } from 'child_process' -import * as path from 'path' -import { readFileSync, statSync } from 'fs' -import { conf } from './config' -import { formatURI, getDocumentContents, trimPath } from './utils' -import { platform } from 'os' -import { Graph } from './graph' -import { Comment } from './comment' -import { linterLog } from './logging' +import { execSync } from 'child_process'; +import { readFileSync, statSync } from 'fs'; +import { platform } from 'os'; +import * as path from 'path'; +import { Diagnostic, DiagnosticSeverity, Range } from 'vscode-languageserver'; +import { Comment } from './comment'; +import { conf } from './config'; +import { Graph } from './graph'; +import { linterLog } from './logging'; +import { connection } from './server'; +import { formatURI, getDocumentContents, trimPath } from './utils'; const reDiag = /^(ERROR|WARNING): ([^?<>*|"]+?):(\d+): (?:'.*?' : )?(.+)\r?/ const reVersion = /#version [\d]{3}/ @@ -290,7 +290,10 @@ function lint(docURI: string, lines: string[], diagnostics: Map d.diag.length > 0), null, 2)) diagsList.forEach(d => { - if (win) d.uri = d.uri.replace('file://C:', 'file:///c%3A') + if (win) { + const drive = d.uri[7] + d.uri = d.uri.replace(`file://${drive}:`, `file:///${drive.toLowerCase()}%3A`) + } connection.sendDiagnostics({uri: d.uri, diagnostics: d.diag}) }) } diff --git a/server/src/utils.ts b/server/src/utils.ts index 16a7360..a3a9968 100644 --- a/server/src/utils.ts +++ b/server/src/utils.ts @@ -1,7 +1,7 @@ -import { connection, documents } from './server' -import { readFileSync } from 'fs' -import { conf } from './config' -import { serverLog } from './logging' +import { readFileSync } from 'fs'; +import { conf } from './config'; +import { serverLog } from './logging'; +import { connection, documents } from './server'; export function postError(e: Error) { connection.window.showErrorMessage(e.message) @@ -9,7 +9,11 @@ export function postError(e: Error) { console.log(e) } -export const formatURI = (uri: string) => uri.replace(/^file:\/\//, '').replace(/^(?:\/)c%3A/, 'C:').replace(/\\/g, '/') +export function formatURI(uri: string): string { + const drive = uri[7] + uri = uri.replace(`file:///${drive.toUpperCase()}%3A`, `file://${drive}:`) + return uri.replace(/^file:\/\//, '').replace(/\\/g, '/') +} export function getDocumentContents(uri: string): string { if (documents.keys().includes('file://' + uri)) return documents.get('file://' + uri).getText()