mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-03 06:51:53 +01:00
Add reading library files to HTML server
This commit is contained in:
@@ -7,11 +7,12 @@ import {
|
||||
Connection, TextDocuments, InitializeParams, InitializeResult, RequestType,
|
||||
DocumentRangeFormattingRequest, Disposable, ServerCapabilities,
|
||||
ConfigurationRequest, ConfigurationParams, DidChangeWorkspaceFoldersNotification,
|
||||
DocumentColorRequest, ColorPresentationRequest, TextDocumentSyncKind, NotificationType, RequestType0, DocumentFormattingRequest, FormattingOptions, TextEdit
|
||||
DocumentColorRequest, ColorPresentationRequest, TextDocumentSyncKind, NotificationType, RequestType0, DocumentFormattingRequest, FormattingOptions, TextEdit,
|
||||
TextDocumentContentRequest
|
||||
} from 'vscode-languageserver';
|
||||
import {
|
||||
getLanguageModes, LanguageModes, Settings, TextDocument, Position, Diagnostic, WorkspaceFolder, ColorInformation,
|
||||
Range, DocumentLink, SymbolInformation, TextDocumentIdentifier, isCompletionItemData
|
||||
Range, DocumentLink, SymbolInformation, TextDocumentIdentifier, isCompletionItemData, FILE_PROTOCOL
|
||||
} from './modes/languageModes';
|
||||
|
||||
import { format } from './modes/formatting';
|
||||
@@ -215,6 +216,9 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
|
||||
documentSelector: null,
|
||||
interFileDependencies: false,
|
||||
workspaceDiagnostics: false
|
||||
},
|
||||
workspace: {
|
||||
textDocumentContent: { schemes: [FILE_PROTOCOL] }
|
||||
}
|
||||
};
|
||||
return { capabilities };
|
||||
@@ -586,6 +590,21 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
|
||||
});
|
||||
});
|
||||
|
||||
connection.onRequest(TextDocumentContentRequest.type, (params, token) => {
|
||||
return runSafe(runtime, async () => {
|
||||
const url = new URL(params.uri);
|
||||
if (url.protocol.slice(0, -1) !== FILE_PROTOCOL) {
|
||||
return null;
|
||||
}
|
||||
const languageMode = languageModes.getMode(url.hostname);
|
||||
if (languageMode && languageMode.getTextDocumentContent) {
|
||||
const content = await languageMode.getTextDocumentContent(url.pathname.slice(1));
|
||||
return { text: content };
|
||||
}
|
||||
return null;
|
||||
}, null, `Error while computing text document content for ${params.uri}`, token);
|
||||
});
|
||||
|
||||
// Listen on the connection
|
||||
connection.listen();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user