Complete residential site build with Docker Compose & Gitea Actions deployment
This commit is contained in:
+102
@@ -0,0 +1,102 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = register;
|
||||
const language_service_1 = require("@volar/language-service");
|
||||
const vscode_uri_1 = require("vscode-uri");
|
||||
const protocol_1 = require("../../protocol");
|
||||
function register(server) {
|
||||
server.onInitialize(() => {
|
||||
const { project } = server;
|
||||
const scriptVersions = (0, language_service_1.createUriMap)();
|
||||
const scriptVersionSnapshots = new WeakSet();
|
||||
server.connection.onRequest(protocol_1.GetMatchTsConfigRequest.type, async (params) => {
|
||||
const uri = vscode_uri_1.URI.parse(params.uri);
|
||||
const languageService = await project.getLanguageService(uri);
|
||||
const tsProject = languageService.context.project.typescript;
|
||||
if (tsProject?.configFileName) {
|
||||
const { configFileName, uriConverter } = tsProject;
|
||||
return { uri: uriConverter.asUri(configFileName).toString() };
|
||||
}
|
||||
});
|
||||
server.connection.onRequest(protocol_1.GetVirtualFileRequest.type, async (document) => {
|
||||
const uri = vscode_uri_1.URI.parse(document.uri);
|
||||
const languageService = await project.getLanguageService(uri);
|
||||
const documentUri = vscode_uri_1.URI.parse(document.uri);
|
||||
const sourceScript = languageService.context.language.scripts.get(documentUri);
|
||||
if (sourceScript?.generated) {
|
||||
return prune(sourceScript.generated.root);
|
||||
}
|
||||
function prune(virtualCode) {
|
||||
const uri = languageService.context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id);
|
||||
let version = scriptVersions.get(uri) ?? 0;
|
||||
if (!scriptVersionSnapshots.has(virtualCode.snapshot)) {
|
||||
version++;
|
||||
scriptVersions.set(uri, version);
|
||||
scriptVersionSnapshots.add(virtualCode.snapshot);
|
||||
}
|
||||
return {
|
||||
fileUri: sourceScript.id.toString(),
|
||||
virtualCodeId: virtualCode.id,
|
||||
languageId: virtualCode.languageId,
|
||||
embeddedCodes: virtualCode.embeddedCodes?.map(prune) || [],
|
||||
version,
|
||||
disabled: languageService.context.disabledEmbeddedDocumentUris.has(uri),
|
||||
};
|
||||
}
|
||||
});
|
||||
server.connection.onRequest(protocol_1.GetVirtualCodeRequest.type, async (params) => {
|
||||
const uri = vscode_uri_1.URI.parse(params.fileUri);
|
||||
const languageService = await project.getLanguageService(uri);
|
||||
const sourceScript = languageService.context.language.scripts.get(vscode_uri_1.URI.parse(params.fileUri));
|
||||
const virtualCode = sourceScript?.generated?.embeddedCodes.get(params.virtualCodeId);
|
||||
if (virtualCode) {
|
||||
const mappings = {};
|
||||
for (const [sourceScript, map] of languageService.context.language.maps.forEach(virtualCode)) {
|
||||
mappings[sourceScript.id.toString()] = map.mappings;
|
||||
}
|
||||
return {
|
||||
content: virtualCode.snapshot.getText(0, virtualCode.snapshot.getLength()),
|
||||
mappings,
|
||||
};
|
||||
}
|
||||
});
|
||||
server.connection.onNotification(protocol_1.UpdateVirtualCodeStateNotification.type, async (params) => {
|
||||
const uri = vscode_uri_1.URI.parse(params.fileUri);
|
||||
const languageService = await project.getLanguageService(uri);
|
||||
const virtualFileUri = languageService.context.encodeEmbeddedDocumentUri(vscode_uri_1.URI.parse(params.fileUri), params.virtualCodeId);
|
||||
if (params.disabled) {
|
||||
languageService.context.disabledEmbeddedDocumentUris.set(virtualFileUri, true);
|
||||
}
|
||||
else {
|
||||
languageService.context.disabledEmbeddedDocumentUris.delete(virtualFileUri);
|
||||
}
|
||||
});
|
||||
server.connection.onNotification(protocol_1.UpdateServicePluginStateNotification.type, async (params) => {
|
||||
const uri = vscode_uri_1.URI.parse(params.uri);
|
||||
const languageService = await project.getLanguageService(uri);
|
||||
const plugin = languageService.context.plugins[params.serviceId][1];
|
||||
if (params.disabled) {
|
||||
languageService.context.disabledServicePlugins.add(plugin);
|
||||
}
|
||||
else {
|
||||
languageService.context.disabledServicePlugins.delete(plugin);
|
||||
}
|
||||
});
|
||||
server.connection.onRequest(protocol_1.GetServicePluginsRequest.type, async (params) => {
|
||||
const uri = vscode_uri_1.URI.parse(params.uri);
|
||||
const languageService = await project.getLanguageService(uri);
|
||||
const result = [];
|
||||
for (let pluginIndex = 0; pluginIndex < languageService.context.plugins.length; pluginIndex++) {
|
||||
const plugin = languageService.context.plugins[pluginIndex];
|
||||
result.push({
|
||||
id: pluginIndex,
|
||||
name: plugin[0].name,
|
||||
disabled: languageService.context.disabledServicePlugins.has(plugin[1]),
|
||||
features: Object.keys(plugin[1]),
|
||||
});
|
||||
}
|
||||
return result;
|
||||
});
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=editorFeatures.js.map
|
||||
Reference in New Issue
Block a user