CTRL + Click on link in script:src or link:href can't find the file. Fixes #13688

This commit is contained in:
Martin Aeschlimann 2016-10-16 23:43:34 +02:00
parent cf02de829d
commit 2e76f1d58e
3 changed files with 18 additions and 9 deletions

View file

@ -3,9 +3,9 @@
"version": "1.0.0",
"dependencies": {
"vscode-html-languageservice": {
"version": "1.0.0-next.5",
"version": "1.0.0-next.6",
"from": "vscode-html-languageservice@next",
"resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-1.0.0-next.5.tgz"
"resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-1.0.0-next.6.tgz"
},
"vscode-jsonrpc": {
"version": "2.4.0",
@ -26,9 +26,9 @@
"resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-1.0.7.tgz"
},
"vscode-uri": {
"version": "0.0.7",
"from": "vscode-uri@>=0.0.7 <0.0.8",
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-0.0.7.tgz"
"version": "1.0.0",
"from": "vscode-uri@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.0.tgz"
}
}
}

View file

@ -8,9 +8,10 @@
"node": "*"
},
"dependencies": {
"vscode-html-languageservice": "^1.0.0-next.5",
"vscode-html-languageservice": "^1.0.0-next.6",
"vscode-languageserver": "^2.6.0-next.3",
"vscode-nls": "^1.0.4"
"vscode-nls": "^1.0.4",
"vscode-uri": "^1.0.0"
},
"scripts": {
"compile": "gulp compile-extension:json-server",

View file

@ -9,7 +9,8 @@ import { createConnection, IConnection, TextDocuments, InitializeParams, Initial
import { HTMLDocument, getLanguageService, CompletionConfiguration, HTMLFormatConfiguration, DocumentContext } from 'vscode-html-languageservice';
import { getLanguageModelCache } from './languageModelCache';
import * as url from 'url';
import * as path from 'path';
import uri from 'vscode-uri';
import * as nls from 'vscode-nls';
nls.config(process.env['VSCODE_NLS_CONFIG']);
@ -117,7 +118,14 @@ connection.onDocumentRangeFormatting(formatParams => {
connection.onDocumentLinks(documentLinkParam => {
let document = documents.get(documentLinkParam.textDocument.uri);
let documentContext: DocumentContext = { resolveReference: ref => url.resolve(document.uri, ref) };
let documentContext: DocumentContext = {
resolveReference: ref => {
if (ref[0] === '/') {
return uri.file(path.join(workspacePath, ref)).toString();
}
return url.resolve(document.uri, ref);
}
};
return languageService.findDocumentLinks(document, documentContext);
});