@@ -11,9 +11,6 @@ import { FortranLangServer, checkForLangServer } from './lang-server'
1111
1212
1313export function activate ( context : vscode . ExtensionContext ) {
14- let hoverProvider = new FortranHoverProvider ( )
15- let completionProvider = new FortranCompletionProvider ( )
16- let symbolProvider = new FortranDocumentSymbolProvider ( )
1714
1815 const extensionConfig = vscode . workspace . getConfiguration ( EXTENSION_ID )
1916
@@ -23,17 +20,30 @@ export function activate(context: vscode.ExtensionContext) {
2320 vscode . languages . registerCodeActionsProvider ( FORTRAN_FREE_FORM_ID , linter )
2421 }
2522
26- vscode . languages . registerCompletionItemProvider (
27- FORTRAN_FREE_FORM_ID ,
28- completionProvider
29- )
30- vscode . languages . registerHoverProvider ( FORTRAN_FREE_FORM_ID , hoverProvider )
31-
32- vscode . languages . registerDocumentSymbolProvider (
33- FORTRAN_FREE_FORM_ID ,
34- symbolProvider
35- )
36-
23+ if ( extensionConfig . get ( 'provideCompletion' , true ) ) {
24+ let completionProvider = new FortranCompletionProvider ( )
25+ vscode . languages . registerCompletionItemProvider (
26+ FORTRAN_FREE_FORM_ID ,
27+ completionProvider
28+ )
29+ }
30+
31+ if ( extensionConfig . get ( 'provideHover' , true ) ) {
32+ let hoverProvider = new FortranHoverProvider ( )
33+ vscode . languages . registerHoverProvider (
34+ FORTRAN_FREE_FORM_ID ,
35+ hoverProvider
36+ )
37+ }
38+
39+ if ( extensionConfig . get ( 'provideSymbols' , true ) ) {
40+ let symbolProvider = new FortranDocumentSymbolProvider ( )
41+ vscode . languages . registerDocumentSymbolProvider (
42+ FORTRAN_FREE_FORM_ID ,
43+ symbolProvider
44+ )
45+ }
46+
3747 if ( checkForLangServer ( extensionConfig ) ) {
3848
3949 const langServer = new FortranLangServer ( context , extensionConfig )
0 commit comments