66 lines
3.4 KiB
Plaintext
66 lines
3.4 KiB
Plaintext
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.create = void 0;
|
|
const volar_service_typescript_1 = __importDefault(require("volar-service-typescript"));
|
|
const index_js_1 = require("../../core/index.js");
|
|
const codeActions_js_1 = require("./codeActions.js");
|
|
const completions_js_1 = require("./completions.js");
|
|
const diagnostics_js_1 = require("./diagnostics.js");
|
|
const create = () => (context, modules) => {
|
|
const typeScriptPlugin = (0, volar_service_typescript_1.default)()(context, modules);
|
|
if (!context) {
|
|
return {
|
|
triggerCharacters: typeScriptPlugin.triggerCharacters,
|
|
signatureHelpTriggerCharacters: typeScriptPlugin.signatureHelpTriggerCharacters,
|
|
signatureHelpRetriggerCharacters: typeScriptPlugin.signatureHelpRetriggerCharacters,
|
|
};
|
|
}
|
|
return {
|
|
...typeScriptPlugin,
|
|
async provideCompletionItems(document, position, completionContext, token) {
|
|
const originalCompletions = await typeScriptPlugin.provideCompletionItems(document, position, completionContext, token);
|
|
if (!originalCompletions)
|
|
return null;
|
|
return (0, completions_js_1.enhancedProvideCompletionItems)(originalCompletions);
|
|
},
|
|
async resolveCompletionItem(item, token) {
|
|
const resolvedCompletionItem = await typeScriptPlugin.resolveCompletionItem(item, token);
|
|
if (!resolvedCompletionItem)
|
|
return item;
|
|
return (0, completions_js_1.enhancedResolveCompletionItem)(resolvedCompletionItem, context);
|
|
},
|
|
async provideCodeActions(document, range, codeActionContext, token) {
|
|
const originalCodeActions = await typeScriptPlugin.provideCodeActions(document, range, codeActionContext, token);
|
|
if (!originalCodeActions)
|
|
return null;
|
|
return (0, codeActions_js_1.enhancedProvideCodeActions)(originalCodeActions, context);
|
|
},
|
|
async resolveCodeAction(codeAction, token) {
|
|
const resolvedCodeAction = await typeScriptPlugin.resolveCodeAction(codeAction, token);
|
|
if (!resolvedCodeAction)
|
|
return codeAction;
|
|
return (0, codeActions_js_1.enhancedResolveCodeAction)(resolvedCodeAction, context);
|
|
},
|
|
async provideSemanticDiagnostics(document, token) {
|
|
const [_, source] = context.documents.getVirtualFileByUri(document.uri);
|
|
const file = source?.root;
|
|
let tsxLineCount = undefined;
|
|
if (file instanceof index_js_1.AstroFile) {
|
|
// If we have compiler errors, our TSX isn't valid so don't bother showing TS errors
|
|
if (file.hasCompilationErrors)
|
|
return null;
|
|
// We'll use this to filter out diagnostics that are outside the mapped range of the TSX
|
|
tsxLineCount = file.astroMeta.tsxRanges.body.end.line;
|
|
}
|
|
const diagnostics = await typeScriptPlugin.provideSemanticDiagnostics(document, token);
|
|
if (!diagnostics)
|
|
return null;
|
|
return (0, diagnostics_js_1.enhancedProvideSemanticDiagnostics)(diagnostics, tsxLineCount);
|
|
},
|
|
};
|
|
};
|
|
exports.create = create;
|
|
//# sourceMappingURL=index.js.map |