greybel-languageserver-core
Version:
Core functionality of language server for GreyScript
58 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.activate = void 0;
async function lookupErrors(document, context) {
const activeDocument = await context.documentManager.getLatest(document);
return activeDocument.errors.map((err) => {
// Lexer error and Parser error
if (err?.range) {
const range = err.range;
return {
range: {
start: {
line: range.start.line - 1,
character: range.start.character - 1
},
end: {
line: range.end.line - 1,
character: range.end.character - 1
}
},
message: err.message,
severity: 1 // Error
};
}
return {
range: {
start: activeDocument.parsedPayload.start,
end: activeDocument.parsedPayload.end
},
message: err.message,
severity: 1 // Error
};
});
}
function activate(context) {
context.connection.languages.diagnostics.on(async (params) => {
if (!context.getConfiguration().diagnostic) {
return;
}
const document = await context.fs.getTextDocument(params.textDocument.uri);
if (document == null) {
return;
}
const diagnostics = await lookupErrors(document, context);
if (diagnostics.length === 0) {
return {
kind: 'full',
items: []
};
}
return {
kind: 'full',
items: diagnostics
};
});
}
exports.activate = activate;
//# sourceMappingURL=diagnostic.js.map