mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-10 07:04:22 +00:00
Format vscode extension and add npm run fix
This commit is contained in:
parent
31c8ebb743
commit
f2d719b24a
4 changed files with 29 additions and 14 deletions
|
@ -18,6 +18,7 @@
|
|||
"compile": "tsc -p ./",
|
||||
"watch": "tsc -watch -p ./",
|
||||
"postinstall": "node ./node_modules/vscode/bin/install",
|
||||
"fix": "prettier **/*.{json,ts} --write && tslint --project . --fix",
|
||||
"lint": "tslint --project .",
|
||||
"prettier": "prettier **/*.{json,ts}",
|
||||
"travis": "npm run compile && npm run lint && npm run prettier --list-different"
|
||||
|
|
|
@ -2,7 +2,7 @@ import * as applySourceChange from './apply_source_change';
|
|||
import * as extendSelection from './extend_selection';
|
||||
import * as joinLines from './join_lines';
|
||||
import * as matchingBrace from './matching_brace';
|
||||
import * as on_enter from './on_enter';
|
||||
import * as onEnter from './on_enter';
|
||||
import * as parentModule from './parent_module';
|
||||
import * as runnables from './runnables';
|
||||
import * as syntaxTree from './syntaxTree';
|
||||
|
@ -15,5 +15,5 @@ export {
|
|||
parentModule,
|
||||
runnables,
|
||||
syntaxTree,
|
||||
on_enter,
|
||||
onEnter
|
||||
};
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
import * as vscode from 'vscode';
|
||||
import * as lc from 'vscode-languageclient';
|
||||
import { Server } from '../server';
|
||||
import { handle as applySourceChange, SourceChange } from './apply_source_change';
|
||||
import {
|
||||
handle as applySourceChange,
|
||||
SourceChange
|
||||
} from './apply_source_change';
|
||||
|
||||
interface OnEnterParams {
|
||||
textDocument: lc.TextDocumentIdentifier;
|
||||
|
@ -10,12 +13,18 @@ interface OnEnterParams {
|
|||
|
||||
export async function handle(event: { text: string }): Promise<boolean> {
|
||||
const editor = vscode.window.activeTextEditor;
|
||||
if (editor == null || editor.document.languageId !== 'rust' || event.text !== '\n') {
|
||||
if (
|
||||
editor == null ||
|
||||
editor.document.languageId !== 'rust' ||
|
||||
event.text !== '\n'
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
const request: OnEnterParams = {
|
||||
textDocument: { uri: editor.document.uri.toString() },
|
||||
position: Server.client.code2ProtocolConverter.asPosition(editor.selection.active),
|
||||
position: Server.client.code2ProtocolConverter.asPosition(
|
||||
editor.selection.active
|
||||
)
|
||||
};
|
||||
const change = await Server.client.sendRequest<undefined | SourceChange>(
|
||||
'm/onEnter',
|
||||
|
@ -25,5 +34,5 @@ export async function handle(event: { text: string }): Promise<boolean> {
|
|||
return false;
|
||||
}
|
||||
await applySourceChange(change);
|
||||
return true
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -16,21 +16,26 @@ export function activate(context: vscode.ExtensionContext) {
|
|||
disposeOnDeactivation(vscode.commands.registerCommand(name, f));
|
||||
}
|
||||
function overrideCommand(
|
||||
|
||||
name: string,
|
||||
f: (...args: any[]) => Promise<boolean>,
|
||||
f: (...args: any[]) => Promise<boolean>
|
||||
) {
|
||||
const defaultCmd = `default:${name}`;
|
||||
const original = async (...args: any[]) => await vscode.commands.executeCommand(defaultCmd, ...args);
|
||||
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') {
|
||||
if (
|
||||
!editor ||
|
||||
!editor.document ||
|
||||
editor.document.languageId !== 'rust'
|
||||
) {
|
||||
return await original(...args);
|
||||
}
|
||||
if (!await f(...args)) {
|
||||
if (!(await f(...args))) {
|
||||
return await original(...args);
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
// Commands are requests from vscode to the language server
|
||||
|
@ -44,12 +49,12 @@ export function activate(context: vscode.ExtensionContext) {
|
|||
'ra-lsp.applySourceChange',
|
||||
commands.applySourceChange.handle
|
||||
);
|
||||
overrideCommand('type', commands.on_enter.handle)
|
||||
overrideCommand('type', commands.onEnter.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…
Reference in a new issue