mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-29 21:35:20 +00:00
Add on-enter handler
Now, typing doc comments is much more pleasant
This commit is contained in:
parent
82447ecace
commit
2b956fd3a8
12 changed files with 630 additions and 401 deletions
|
@ -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(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue