@@ -22,45 +22,46 @@ import registerCommands from './features/commands';
2222import { StdioOmnisharpServer } from './omnisharpServer' ;
2323import forwardChanges from './features/changeForwarding' ;
2424import reportStatus from './features/omnisharpStatus' ;
25- import { Disposable , ExtensionContext , DocumentSelector , languages } from 'vscode' ;
2625import { installCoreClrDebug } from './coreclr-debug' ;
26+ import { promptToAddBuildTaskIfNecessary } from './tasks' ;
27+ import * as vscode from 'vscode' ;
2728
28- export function activate ( context : ExtensionContext ) : any {
29+ export function activate ( context : vscode . ExtensionContext ) : any {
2930
30- const _selector : DocumentSelector = {
31+ const _selector : vscode . DocumentSelector = {
3132 language : 'csharp' ,
3233 scheme : 'file' // only files from disk
3334 } ;
3435
3536 const server = new StdioOmnisharpServer ( ) ;
3637 const advisor = new Advisor ( server ) ; // create before server is started
37- const disposables : Disposable [ ] = [ ] ;
38- const localDisposables : Disposable [ ] = [ ] ;
38+ const disposables : vscode . Disposable [ ] = [ ] ;
39+ const localDisposables : vscode . Disposable [ ] = [ ] ;
3940
4041 disposables . push ( server . onServerStart ( ( ) => {
4142 // register language feature provider on start
42- localDisposables . push ( languages . registerDefinitionProvider ( _selector , new DefinitionProvider ( server ) ) ) ;
43- localDisposables . push ( languages . registerCodeLensProvider ( _selector , new CodeLensProvider ( server ) ) ) ;
44- localDisposables . push ( languages . registerDocumentHighlightProvider ( _selector , new DocumentHighlightProvider ( server ) ) ) ;
45- localDisposables . push ( languages . registerDocumentSymbolProvider ( _selector , new DocumentSymbolProvider ( server ) ) ) ;
46- localDisposables . push ( languages . registerReferenceProvider ( _selector , new ReferenceProvider ( server ) ) ) ;
47- localDisposables . push ( languages . registerHoverProvider ( _selector , new HoverProvider ( server ) ) ) ;
48- localDisposables . push ( languages . registerRenameProvider ( _selector , new RenameProvider ( server ) ) ) ;
49- localDisposables . push ( languages . registerDocumentRangeFormattingEditProvider ( _selector , new FormatProvider ( server ) ) ) ;
50- localDisposables . push ( languages . registerOnTypeFormattingEditProvider ( _selector , new FormatProvider ( server ) , '}' , ';' ) ) ;
51- localDisposables . push ( languages . registerCompletionItemProvider ( _selector , new CompletionItemProvider ( server ) , '.' , '<' ) ) ;
52- localDisposables . push ( languages . registerWorkspaceSymbolProvider ( new WorkspaceSymbolProvider ( server ) ) ) ;
53- localDisposables . push ( languages . registerSignatureHelpProvider ( _selector , new SignatureHelpProvider ( server ) , '(' , ',' ) ) ;
43+ localDisposables . push ( vscode . languages . registerDefinitionProvider ( _selector , new DefinitionProvider ( server ) ) ) ;
44+ localDisposables . push ( vscode . languages . registerCodeLensProvider ( _selector , new CodeLensProvider ( server ) ) ) ;
45+ localDisposables . push ( vscode . languages . registerDocumentHighlightProvider ( _selector , new DocumentHighlightProvider ( server ) ) ) ;
46+ localDisposables . push ( vscode . languages . registerDocumentSymbolProvider ( _selector , new DocumentSymbolProvider ( server ) ) ) ;
47+ localDisposables . push ( vscode . languages . registerReferenceProvider ( _selector , new ReferenceProvider ( server ) ) ) ;
48+ localDisposables . push ( vscode . languages . registerHoverProvider ( _selector , new HoverProvider ( server ) ) ) ;
49+ localDisposables . push ( vscode . languages . registerRenameProvider ( _selector , new RenameProvider ( server ) ) ) ;
50+ localDisposables . push ( vscode . languages . registerDocumentRangeFormattingEditProvider ( _selector , new FormatProvider ( server ) ) ) ;
51+ localDisposables . push ( vscode . languages . registerOnTypeFormattingEditProvider ( _selector , new FormatProvider ( server ) , '}' , ';' ) ) ;
52+ localDisposables . push ( vscode . languages . registerCompletionItemProvider ( _selector , new CompletionItemProvider ( server ) , '.' , '<' ) ) ;
53+ localDisposables . push ( vscode . languages . registerWorkspaceSymbolProvider ( new WorkspaceSymbolProvider ( server ) ) ) ;
54+ localDisposables . push ( vscode . languages . registerSignatureHelpProvider ( _selector , new SignatureHelpProvider ( server ) , '(' , ',' ) ) ;
5455 const codeActionProvider = new CodeActionProvider ( server ) ;
5556 localDisposables . push ( codeActionProvider ) ;
56- localDisposables . push ( languages . registerCodeActionsProvider ( _selector , codeActionProvider ) ) ;
57+ localDisposables . push ( vscode . languages . registerCodeActionsProvider ( _selector , codeActionProvider ) ) ;
5758 localDisposables . push ( reportDiagnostics ( server , advisor ) ) ;
5859 localDisposables . push ( forwardChanges ( server ) ) ;
5960 } ) ) ;
6061
6162 disposables . push ( server . onServerStop ( ( ) => {
6263 // remove language feature providers on stop
63- Disposable . from ( ...localDisposables ) . dispose ( ) ;
64+ vscode . Disposable . from ( ...localDisposables ) . dispose ( ) ;
6465 } ) ) ;
6566
6667 disposables . push ( registerCommands ( server , context . extensionPath ) ) ;
@@ -71,14 +72,17 @@ export function activate(context: ExtensionContext): any {
7172 server . autoStart ( context . workspaceState . get < string > ( 'lastSolutionPathOrFolder' ) ) ;
7273
7374 // stop server on deactivate
74- disposables . push ( new Disposable ( ( ) => {
75+ disposables . push ( new vscode . Disposable ( ( ) => {
7576 advisor . dispose ( ) ;
7677 server . stop ( ) ;
7778 } ) ) ;
7879
80+ // Check to see if there is a tasks.json with a "build" task and prompt the user to add it if missing.
81+ promptToAddBuildTaskIfNecessary ( ) ;
82+
7983 // install coreclr-debug
8084 installCoreClrDebug ( context ) ;
81-
85+
8286 context . subscriptions . push ( ...disposables ) ;
8387}
8488
0 commit comments