+46
-34
@@ -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() {}
|
||||
|
||||
Reference in New Issue
Block a user