@@ -6,7 +6,7 @@ import { liveIndex } from './live';
66import { CompletionProvider } from './autocompletion/completion-provider' ;
77import { DefinitionProvider , DocumentSymbolProvider , WorkspaceSymbolProvider , ReferenceProvider , RenameProvider } from './index/providers' ;
88import { initialCrawl , createWorkspaceWatcher } from './index/watcher' ;
9- import { WorkspaceIndex , Section } from './index' ;
9+ import { Section , Index } from './index' ;
1010import { CodeLensProvider , showReferencesCommand } from './codelense' ;
1111import { getConfiguration } from './configuration' ;
1212import { HoverProvider } from './hover' ;
@@ -20,6 +20,8 @@ const documentSelector: vscode.DocumentSelector = [
2020] ;
2121
2222export function activate ( ctx : vscode . ExtensionContext ) {
23+ let index = new Index ( ) ;
24+
2325 ctx . subscriptions . push ( ErrorDiagnosticCollection ) ;
2426
2527 let formattingProvider = new FormattingEditProvider ;
@@ -30,30 +32,35 @@ export function activate(ctx: vscode.ExtensionContext) {
3032 vscode . commands . registerCommand ( 'terraform.validate' , ( ) => { validateCommand ( ) ; } ) ,
3133 vscode . commands . registerCommand ( 'terraform.lint' , ( ) => { lintCommand ( ) ; } ) ,
3234 vscode . commands . registerCommand ( 'terraform.showReferences' , ( section : Section ) => {
33- showReferencesCommand ( section ) ;
35+ showReferencesCommand ( index , section ) ;
36+ } ) ,
37+ vscode . commands . registerCommand ( 'terraform.reindex' , ( ) => {
38+ if ( getConfiguration ( ) . indexing . enabled ) {
39+ initialCrawl ( index ) ;
40+ }
3441 } ) ,
3542
3643 // providers
37- vscode . languages . registerCompletionItemProvider ( documentSelector , new CompletionProvider , '.' , '"' ) ,
38- vscode . languages . registerDefinitionProvider ( documentSelector , new DefinitionProvider ) ,
39- vscode . languages . registerDocumentSymbolProvider ( documentSelector , new DocumentSymbolProvider ) ,
40- vscode . languages . registerWorkspaceSymbolProvider ( new WorkspaceSymbolProvider ) ,
41- vscode . languages . registerReferenceProvider ( documentSelector , new ReferenceProvider ) ,
42- vscode . languages . registerRenameProvider ( documentSelector , new RenameProvider ) ,
43- vscode . languages . registerCodeLensProvider ( documentSelector , new CodeLensProvider ) ,
44- vscode . languages . registerHoverProvider ( documentSelector , new HoverProvider )
44+ vscode . languages . registerCompletionItemProvider ( documentSelector , new CompletionProvider ( index ) , '.' , '"' ) ,
45+ vscode . languages . registerDefinitionProvider ( documentSelector , new DefinitionProvider ( index ) ) ,
46+ vscode . languages . registerDocumentSymbolProvider ( documentSelector , new DocumentSymbolProvider ( index ) ) ,
47+ vscode . languages . registerWorkspaceSymbolProvider ( new WorkspaceSymbolProvider ( index ) ) ,
48+ vscode . languages . registerReferenceProvider ( documentSelector , new ReferenceProvider ( index ) ) ,
49+ vscode . languages . registerRenameProvider ( documentSelector , new RenameProvider ( index ) ) ,
50+ vscode . languages . registerCodeLensProvider ( documentSelector , new CodeLensProvider ( index ) ) ,
51+ vscode . languages . registerHoverProvider ( documentSelector , new HoverProvider ( index ) )
4552 ) ;
4653
4754 // operations which should only work in a local context (as opposed to live-share)
4855 if ( vscode . workspace . rootPath ) {
4956 // we need to manually handle save events otherwise format on autosave does not work
5057 ctx . subscriptions . push ( vscode . workspace . onDidSaveTextDocument ( ( doc ) => formattingProvider . onSave ( doc ) ) ) ;
51- ctx . subscriptions . push ( vscode . workspace . onDidChangeTextDocument ( liveIndex ) ) ;
58+ ctx . subscriptions . push ( vscode . workspace . onDidChangeTextDocument ( ( e ) => liveIndex ( index , e ) ) ) ;
5259
5360 // start to build the index
5461 if ( getConfiguration ( ) . indexing . enabled ) {
55- ctx . subscriptions . push ( createWorkspaceWatcher ( WorkspaceIndex ) ) ;
56- initialCrawl ( WorkspaceIndex ) ;
62+ ctx . subscriptions . push ( createWorkspaceWatcher ( index ) ) ;
63+ initialCrawl ( index ) ;
5764 }
5865 }
5966}
0 commit comments