Add on-enter handler
Now, typing doc comments is much more pleasant
This commit is contained in:
@@ -15,6 +15,23 @@ export function activate(context: vscode.ExtensionContext) {
|
||||
function registerCommand(name: string, f: any) {
|
||||
disposeOnDeactivation(vscode.commands.registerCommand(name, f));
|
||||
}
|
||||
function overrideCommand(
|
||||
|
||||
name: string,
|
||||
f: (...args: any[]) => Promise<boolean>,
|
||||
) {
|
||||
const defaultCmd = `default:${name}`;
|
||||
const original = async (...args: any[]) => await vscode.commands.executeCommand(defaultCmd, ...args);
|
||||
registerCommand(name, async (...args: any[]) => {
|
||||
const editor = vscode.window.activeTextEditor;
|
||||
if (!editor || !editor.document || editor.document.languageId !== 'rust') {
|
||||
return await original(...args);
|
||||
}
|
||||
if (!await f(...args)) {
|
||||
return await original(...args);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Commands are requests from vscode to the language server
|
||||
registerCommand('ra-lsp.syntaxTree', commands.syntaxTree.handle);
|
||||
@@ -27,11 +44,12 @@ export function activate(context: vscode.ExtensionContext) {
|
||||
'ra-lsp.applySourceChange',
|
||||
commands.applySourceChange.handle
|
||||
);
|
||||
overrideCommand('type', commands.on_enter.handle)
|
||||
|
||||
// Notifications are events triggered by the language server
|
||||
const allNotifications: Iterable<
|
||||
[string, lc.GenericNotificationHandler]
|
||||
> = [['m/publishDecorations', notifications.publishDecorations.handle]];
|
||||
> = [['m/publishDecorations', notifications.publishDecorations.handle]];
|
||||
|
||||
// The events below are plain old javascript events, triggered and handled by vscode
|
||||
vscode.window.onDidChangeActiveTextEditor(
|
||||
|
||||
Reference in New Issue
Block a user