add Hover feature
/ build_and_publish (push) Failing after 19s

This commit is contained in:
Christoph Brandau
2025-01-08 15:53:19 +01:00
parent 793effd85d
commit a318cf6e46
8 changed files with 213 additions and 93 deletions
+46 -34
View File
@@ -1,41 +1,53 @@
import * as vscode from "vscode";
import { formatCdlFile, completionHandler } from "./common/handlers";
import * as vscode from "vscode"
import { formatCdlFile, completionHandler, hoverHandler } from "./common/handlers"
export function activate(context: vscode.ExtensionContext) {
const disposable = vscode.languages.registerDocumentFormattingEditProvider(
{ scheme: "file", language: "cdl" },
{
provideDocumentFormattingEdits(
document: vscode.TextDocument
): vscode.TextEdit[] {
const text = document.getText();
const formattedText = formatCdlFile(text);
const fullRange = new vscode.Range(
document.positionAt(0),
document.positionAt(text.length)
);
return [vscode.TextEdit.replace(fullRange, formattedText)];
},
}
);
const formatProvider = vscode.languages.registerDocumentFormattingEditProvider(
{ scheme: "file", language: "cdl" },
{
provideDocumentFormattingEdits(document: vscode.TextDocument): vscode.TextEdit[] {
const text = document.getText()
const formattedText = formatCdlFile(text)
const fullRange = new vscode.Range(
document.positionAt(0),
document.positionAt(text.length)
)
return [vscode.TextEdit.replace(fullRange, formattedText)]
}
}
)
context.subscriptions.push(disposable);
context.subscriptions.push(formatProvider)
const completionProvider = vscode.languages.registerCompletionItemProvider(
{ scheme: "file", language: "cdl" },
{
provideCompletionItems(
document: vscode.TextDocument,
position: vscode.Position,
token: vscode.CancellationToken,
context: vscode.CompletionContext
) {
return completionHandler(document, position);
},
},
" " // Trigger completion on space
);
context.subscriptions.push(completionProvider);
const completionProvider = vscode.languages.registerCompletionItemProvider(
{ scheme: "file", language: "cdl" },
{
provideCompletionItems(
document: vscode.TextDocument,
position: vscode.Position,
token: vscode.CancellationToken,
context: vscode.CompletionContext
) {
return completionHandler(document, position)
}
},
" " // Trigger completion on space
)
context.subscriptions.push(completionProvider)
const hoverProvider = vscode.languages.registerHoverProvider(
{ scheme: "file", language: "cdl" },
{
provideHover(
document: vscode.TextDocument,
position: vscode.Position,
token: vscode.CancellationToken
) {
return hoverHandler(document, position)
}
}
)
context.subscriptions.push(hoverProvider)
}
export function deactivate() {}