@@ -7,12 +7,11 @@ import FortranHoverProvider from './features/hover-provider';
7
7
import { FortranCompletionProvider } from './features/completion-provider' ;
8
8
import { FortranDocumentSymbolProvider } from './features/document-symbol-provider' ;
9
9
10
- import { FortranLangServer } from './lang-server' ;
11
- import { FORTRAN_DOCUMENT_SELECTOR , EXTENSION_ID , promptForMissingTool } from './lib/helper' ;
12
10
import { LoggingService } from './services/logging-service' ;
13
11
import * as pkg from '../package.json' ;
14
12
import { LANG_SERVER_TOOL_ID } from './lib/tools' ;
15
13
import { FortranFormattingProvider } from './features/formatting-provider' ;
14
+ import { EXTENSION_ID , FortranDocumentSelector , promptForMissingTool } from './lib/tools' ;
16
15
17
16
// Make it global to catch errors when activation fails
18
17
const loggingService = new LoggingService ( ) ;
@@ -26,15 +25,15 @@ export function activate(context: vscode.ExtensionContext) {
26
25
if ( extensionConfig . get ( 'linterEnabled' , true ) ) {
27
26
const linter = new FortranLintingProvider ( loggingService ) ;
28
27
linter . activate ( context . subscriptions ) ;
29
- vscode . languages . registerCodeActionsProvider ( FORTRAN_DOCUMENT_SELECTOR , linter ) ;
28
+ vscode . languages . registerCodeActionsProvider ( FortranDocumentSelector ( ) , linter ) ;
30
29
loggingService . logInfo ( 'Linter is enabled' ) ;
31
30
} else {
32
31
loggingService . logInfo ( 'Linter is not enabled' ) ;
33
32
}
34
33
35
34
if ( extensionConfig . get ( 'formatter' ) !== 'Disabled' ) {
36
35
const disposable : vscode . Disposable = vscode . languages . registerDocumentFormattingEditProvider (
37
- FORTRAN_DOCUMENT_SELECTOR ,
36
+ FortranDocumentSelector ( ) ,
38
37
new FortranFormattingProvider ( loggingService )
39
38
) ;
40
39
context . subscriptions . push ( disposable ) ;
@@ -45,22 +44,22 @@ export function activate(context: vscode.ExtensionContext) {
45
44
46
45
if ( extensionConfig . get ( 'provideCompletion' , true ) ) {
47
46
const completionProvider = new FortranCompletionProvider ( loggingService ) ;
48
- vscode . languages . registerCompletionItemProvider ( FORTRAN_DOCUMENT_SELECTOR , completionProvider ) ;
47
+ vscode . languages . registerCompletionItemProvider ( FortranDocumentSelector ( ) , completionProvider ) ;
49
48
} else {
50
49
loggingService . logInfo ( 'Completion Provider is not enabled' ) ;
51
50
}
52
51
53
52
if ( extensionConfig . get ( 'provideHover' , true ) ) {
54
53
const hoverProvider = new FortranHoverProvider ( loggingService ) ;
55
- vscode . languages . registerHoverProvider ( FORTRAN_DOCUMENT_SELECTOR , hoverProvider ) ;
54
+ vscode . languages . registerHoverProvider ( FortranDocumentSelector ( ) , hoverProvider ) ;
56
55
loggingService . logInfo ( 'Hover Provider is enabled' ) ;
57
56
} else {
58
57
loggingService . logInfo ( 'Hover Provider is not enabled' ) ;
59
58
}
60
59
61
60
if ( extensionConfig . get ( 'provideSymbols' , true ) ) {
62
61
const symbolProvider = new FortranDocumentSymbolProvider ( ) ;
63
- vscode . languages . registerDocumentSymbolProvider ( FORTRAN_DOCUMENT_SELECTOR , symbolProvider ) ;
62
+ vscode . languages . registerDocumentSymbolProvider ( FortranDocumentSelector ( ) , symbolProvider ) ;
64
63
loggingService . logInfo ( 'Symbol Provider is enabled' ) ;
65
64
} else {
66
65
loggingService . logInfo ( 'Symbol Provider is not enabled' ) ;
@@ -74,30 +73,4 @@ export function activate(context: vscode.ExtensionContext) {
74
73
https://github.com/hansec/fortran-language-server` ;
75
74
promptForMissingTool ( LANG_SERVER_TOOL_ID , msg , 'Python' , loggingService ) ;
76
75
}
77
-
78
- // Check that Fortran Intellisense is installed and if not prompt to install
79
- if ( ! vscode . extensions . getExtension ( 'hansec.fortran-ls' ) ) {
80
- const msg = `It is highly recommended to install the Fortran IntelliSense
81
- extension. The extension is used to interface with the
82
- fortran-language-server.
83
- For a full list of features provided by the extension see:
84
- https://github.com/hansec/vscode-fortran-ls` ;
85
- promptForMissingTool ( 'hansec.fortran-ls' , msg , 'VSExt' , loggingService ) ;
86
- }
87
-
88
- // Our interface with `fortls` has been disabled in favour of the @hansec's
89
- // VS Code extension Fortran IntelliSense
90
- const useInternalFLInterface = false ;
91
- if ( useInternalFLInterface ) {
92
- const langServer = new FortranLangServer ( context , extensionConfig ) ;
93
- langServer . start ( ) ;
94
- langServer . onReady ( ) . then ( ( ) => {
95
- const capabilities = langServer . getCapabilities ( ) ;
96
- if ( ! capabilities ) {
97
- return vscode . window . showErrorMessage (
98
- 'The language server is not able to serve any features at the moment.'
99
- ) ;
100
- }
101
- } ) ;
102
- }
103
76
}
0 commit comments