rust/editors/code/src/extension.ts

46 lines
1.6 KiB
TypeScript
Raw Normal View History

2018-08-10 07:07:43 -05:00
import * as vscode from 'vscode';
2018-10-07 15:44:25 -05:00
import * as commands from './commands'
import * as events from './events'
import { Server } from './server';
import { TextDocumentContentProvider } from './commands/syntaxTree';
2018-08-10 07:07:43 -05:00
export function activate(context: vscode.ExtensionContext) {
2018-10-07 15:44:25 -05:00
function disposeOnDeactivation(disposable: vscode.Disposable) {
2018-08-10 07:07:43 -05:00
context.subscriptions.push(disposable);
}
2018-08-22 02:18:58 -05:00
2018-10-07 15:44:25 -05:00
function registerCommand(name: string, f: any) {
disposeOnDeactivation(vscode.commands.registerCommand(name, f))
}
2018-08-27 12:58:38 -05:00
2018-10-07 15:44:25 -05:00
registerCommand('ra-lsp.syntaxTree', commands.syntaxTree.handle)
registerCommand('ra-lsp.extendSelection', commands.extendSelection.handle);
registerCommand('ra-lsp.matchingBrace', commands.matchingBrace.handle);
registerCommand('ra-lsp.joinLines', commands.joinLines.handle);
registerCommand('ra-lsp.parentModule', commands.parentModule.handle);
registerCommand('ra-lsp.run', commands.runnables.handle);
registerCommand('ra-lsp.applySourceChange', commands.applySourceChange.handle);
2018-08-10 13:13:39 -05:00
2018-10-07 15:44:25 -05:00
let textDocumentContentProvider = new TextDocumentContentProvider()
disposeOnDeactivation(vscode.workspace.registerTextDocumentContentProvider(
2018-09-16 04:54:24 -05:00
'ra-lsp',
2018-08-10 13:13:39 -05:00
textDocumentContentProvider
2018-08-10 07:07:43 -05:00
))
2018-10-07 15:44:25 -05:00
Server.start()
vscode.workspace.onDidChangeTextDocument(
events.changeTextDocument.createHandler(textDocumentContentProvider),
null,
context.subscriptions)
vscode.window.onDidChangeActiveTextEditor(events.changeActiveTextEditor.handle)
2018-08-17 11:54:08 -05:00
}
2018-08-10 07:07:43 -05:00
export function deactivate(): Thenable<void> {
2018-10-07 15:44:25 -05:00
if (!Server.client) {
2018-08-27 14:52:43 -05:00
return Promise.resolve();
2018-08-10 07:07:43 -05:00
}
2018-10-07 15:44:25 -05:00
return Server.client.stop();
2018-08-29 10:03:14 -05:00
}