@@ -7,12 +7,12 @@ 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 FortranLanguageServer from './fortls-interface' ;
15
+ import { EXTENSION_ID , FortranDocumentSelector , promptForMissingTool } from './lib/tools' ;
16
16
17
17
// Make it global to catch errors when activation fails
18
18
const loggingService = new LoggingService ( ) ;
@@ -26,15 +26,15 @@ export function activate(context: vscode.ExtensionContext) {
26
26
if ( extensionConfig . get ( 'linterEnabled' , true ) ) {
27
27
const linter = new FortranLintingProvider ( loggingService ) ;
28
28
linter . activate ( context . subscriptions ) ;
29
- vscode . languages . registerCodeActionsProvider ( FORTRAN_DOCUMENT_SELECTOR , linter ) ;
29
+ vscode . languages . registerCodeActionsProvider ( FortranDocumentSelector ( ) , linter ) ;
30
30
loggingService . logInfo ( 'Linter is enabled' ) ;
31
31
} else {
32
32
loggingService . logInfo ( 'Linter is not enabled' ) ;
33
33
}
34
34
35
35
if ( extensionConfig . get ( 'formatter' ) !== 'Disabled' ) {
36
36
const disposable : vscode . Disposable = vscode . languages . registerDocumentFormattingEditProvider (
37
- FORTRAN_DOCUMENT_SELECTOR ,
37
+ FortranDocumentSelector ( ) ,
38
38
new FortranFormattingProvider ( loggingService )
39
39
) ;
40
40
context . subscriptions . push ( disposable ) ;
@@ -45,22 +45,22 @@ export function activate(context: vscode.ExtensionContext) {
45
45
46
46
if ( extensionConfig . get ( 'provideCompletion' , true ) ) {
47
47
const completionProvider = new FortranCompletionProvider ( loggingService ) ;
48
- vscode . languages . registerCompletionItemProvider ( FORTRAN_DOCUMENT_SELECTOR , completionProvider ) ;
48
+ vscode . languages . registerCompletionItemProvider ( FortranDocumentSelector ( ) , completionProvider ) ;
49
49
} else {
50
50
loggingService . logInfo ( 'Completion Provider is not enabled' ) ;
51
51
}
52
52
53
53
if ( extensionConfig . get ( 'provideHover' , true ) ) {
54
54
const hoverProvider = new FortranHoverProvider ( loggingService ) ;
55
- vscode . languages . registerHoverProvider ( FORTRAN_DOCUMENT_SELECTOR , hoverProvider ) ;
55
+ vscode . languages . registerHoverProvider ( FortranDocumentSelector ( ) , hoverProvider ) ;
56
56
loggingService . logInfo ( 'Hover Provider is enabled' ) ;
57
57
} else {
58
58
loggingService . logInfo ( 'Hover Provider is not enabled' ) ;
59
59
}
60
60
61
61
if ( extensionConfig . get ( 'provideSymbols' , true ) ) {
62
62
const symbolProvider = new FortranDocumentSymbolProvider ( ) ;
63
- vscode . languages . registerDocumentSymbolProvider ( FORTRAN_DOCUMENT_SELECTOR , symbolProvider ) ;
63
+ vscode . languages . registerDocumentSymbolProvider ( FortranDocumentSelector ( ) , symbolProvider ) ;
64
64
loggingService . logInfo ( 'Symbol Provider is enabled' ) ;
65
65
} else {
66
66
loggingService . logInfo ( 'Symbol Provider is not enabled' ) ;
@@ -74,30 +74,4 @@ export function activate(context: vscode.ExtensionContext) {
74
74
https://github.com/hansec/fortran-language-server` ;
75
75
promptForMissingTool ( LANG_SERVER_TOOL_ID , msg , 'Python' , loggingService ) ;
76
76
}
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
77
}
0 commit comments