Skip to content

Commit e40ddad

Browse files
Merge pull request #152 from hansec/toggle_HovSymComp
Add support for disabling Hover, Completion and Symbol providers
2 parents 8f98a62 + e130700 commit e40ddad

File tree

2 files changed

+39
-14
lines changed

2 files changed

+39
-14
lines changed

package.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,11 @@
120120
],
121121
"description": "Specify additional options to use when calling the gfortran compiler"
122122
},
123+
"fortran.provideSymbols": {
124+
"type": "boolean",
125+
"default": true,
126+
"description": "Enables or disables symbol functionality (disable if using 'Fortran IntelliSense')"
127+
},
123128
"fortran.symbols": {
124129
"type": [
125130
"array"
@@ -133,6 +138,16 @@
133138
],
134139
"description": "Specify what kind of symbols should be shown by the symbols' provider"
135140
},
141+
"fortran.provideHover": {
142+
"type": "boolean",
143+
"default": true,
144+
"description": "Enables or hover functionality (disable if using 'Fortran IntelliSense')"
145+
},
146+
"fortran.provideCompletion": {
147+
"type": "boolean",
148+
"default": true,
149+
"description": "Enables or disables completion functionality (disable if using 'Fortran IntelliSense')"
150+
},
136151
"fortran.preferredCase": {
137152
"type": "string",
138153
"default": "lowercase",

src/extension.ts

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ import { FortranLangServer, checkForLangServer } from './lang-server'
1111

1212

1313
export 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

Comments
 (0)