From 692f70a998b9e506e99d9df8f4656fa0da4a706a Mon Sep 17 00:00:00 2001 From: Geequlim Date: Wed, 21 Dec 2016 10:03:11 +0800 Subject: [PATCH] Fix errors on windows --- src/config.ts | 12 ++++++++++++ src/docdata.ts | 3 ++- src/gdscript/completion.ts | 3 ++- src/gdscript/diagnostic.ts | 4 +++- src/tool_manager.ts | 5 ++--- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/config.ts b/src/config.ts index 0563f5b..b030757 100644 --- a/src/config.ts +++ b/src/config.ts @@ -30,6 +30,18 @@ class Config { getAllSymbols() { return this.symbols; } + + normalizePath(path) { + let newpath = path; + if( path.indexOf(":") != -1){ + let parts = path.split(":"); + newpath = parts[0].toUpperCase() + for(let i=1; i{ + requestGodot({action: "editor", command: "gendoc", path: config.normalizePath(docfile) }).then((res:any)=>{ if(res && res.done) loadDocdata(docfile); else diff --git a/src/gdscript/completion.ts b/src/gdscript/completion.ts index c7db82c..c496ec4 100644 --- a/src/gdscript/completion.ts +++ b/src/gdscript/completion.ts @@ -11,6 +11,7 @@ import { } from 'vscode'; import requestGodot from '../request'; +import config from '../config'; interface CompleteRequest { path: string, @@ -36,7 +37,7 @@ class GDScriptCompletionItemProvider implements CompletionItemProvider { provideCompletionItems(document : TextDocument, position : Position, token : CancellationToken) : CompletionItem[] | Thenable < CompletionItem[] > | CompletionList | Thenable < CompletionList > { // console.log("[GodotTools]:provideCompletionItems"); const request: CompleteRequest = { - path: document.fileName, + path: config.normalizePath(document.fileName), text: document.getText(), cursor: { row: position.line + 1, diff --git a/src/gdscript/diagnostic.ts b/src/gdscript/diagnostic.ts index 77cade2..59d1d9e 100644 --- a/src/gdscript/diagnostic.ts +++ b/src/gdscript/diagnostic.ts @@ -1,6 +1,8 @@ import requestGodot from "../request"; import * as vscode from 'vscode'; import {DiagnosticCollection, DiagnosticSeverity} from 'vscode'; +import config from '../config'; + interface GDParseError { message: string, column: number, @@ -72,7 +74,7 @@ class GDScriptDiagnosticSeverity { if(doc.languageId == 'gdscript') { // console.log('[GodotTools]:start parsing document ', doc); const self = this; - const request: ParseRequest = {text: doc.getText(), path: doc.fileName}; + const request: ParseRequest = {text: doc.getText(), path: config.normalizePath(doc.fileName)}; requestGodot({action: "parsescript",request}).then((data: any)=>{ const result: GDScript = data.result; if(result && vscode.window.activeTextEditor.document == doc){ diff --git a/src/tool_manager.ts b/src/tool_manager.ts index 5c45b18..42ec98f 100644 --- a/src/tool_manager.ts +++ b/src/tool_manager.ts @@ -14,10 +14,9 @@ class ToolManager { private workspacesymbolprovider: GDScriptWorkspaceSymbolProvider = null; constructor(context: vscode.ExtensionContext) { - this.workspaceDir = vscode.workspace.rootPath; + this.workspaceDir = vscode.workspace.rootPath.replace(/\\/g, "/"); this.validate(); this.loadWorkspaceSymbols(); - this.docs = new DocDataManager(context.extensionPath); this.symbolprovider = new GDScriptSymbolProvider(); vscode.languages.registerDocumentSymbolProvider('gdscript', this.symbolprovider); @@ -32,7 +31,7 @@ class ToolManager { let path = res.path; if(path && path.length> 0 && path.endsWith("/")) path = path.substring(0, path.length-1) - if( path == self.workspaceDir) + if( path.toLowerCase() == self.workspaceDir.toLowerCase()) vscode.window.showInformationMessage("Connected to godot editor server"); else { vscode.window.showWarningMessage("The opened project is not same with godot editor");