@@ -7,12 +7,11 @@ import FortranHoverProvider from './features/hover-provider';
77import { FortranCompletionProvider } from './features/completion-provider' ;
88import { FortranDocumentSymbolProvider } from './features/document-symbol-provider' ;
99
10- import { FortranLangServer } from './lang-server' ;
11- import { FORTRAN_DOCUMENT_SELECTOR , EXTENSION_ID , promptForMissingTool } from './lib/helper' ;
1210import { LoggingService } from './services/logging-service' ;
1311import * as pkg from '../package.json' ;
1412import { LANG_SERVER_TOOL_ID } from './lib/tools' ;
1513import { FortranFormattingProvider } from './features/formatting-provider' ;
14+ import { EXTENSION_ID , FortranDocumentSelector , promptForMissingTool } from './lib/tools' ;
1615
1716// Make it global to catch errors when activation fails
1817const loggingService = new LoggingService ( ) ;
@@ -26,15 +25,15 @@ export function activate(context: vscode.ExtensionContext) {
2625 if ( extensionConfig . get ( 'linterEnabled' , true ) ) {
2726 const linter = new FortranLintingProvider ( loggingService ) ;
2827 linter . activate ( context . subscriptions ) ;
29- vscode . languages . registerCodeActionsProvider ( FORTRAN_DOCUMENT_SELECTOR , linter ) ;
28+ vscode . languages . registerCodeActionsProvider ( FortranDocumentSelector ( ) , linter ) ;
3029 loggingService . logInfo ( 'Linter is enabled' ) ;
3130 } else {
3231 loggingService . logInfo ( 'Linter is not enabled' ) ;
3332 }
3433
3534 if ( extensionConfig . get ( 'formatter' ) !== 'Disabled' ) {
3635 const disposable : vscode . Disposable = vscode . languages . registerDocumentFormattingEditProvider (
37- FORTRAN_DOCUMENT_SELECTOR ,
36+ FortranDocumentSelector ( ) ,
3837 new FortranFormattingProvider ( loggingService )
3938 ) ;
4039 context . subscriptions . push ( disposable ) ;
@@ -45,22 +44,22 @@ export function activate(context: vscode.ExtensionContext) {
4544
4645 if ( extensionConfig . get ( 'provideCompletion' , true ) ) {
4746 const completionProvider = new FortranCompletionProvider ( loggingService ) ;
48- vscode . languages . registerCompletionItemProvider ( FORTRAN_DOCUMENT_SELECTOR , completionProvider ) ;
47+ vscode . languages . registerCompletionItemProvider ( FortranDocumentSelector ( ) , completionProvider ) ;
4948 } else {
5049 loggingService . logInfo ( 'Completion Provider is not enabled' ) ;
5150 }
5251
5352 if ( extensionConfig . get ( 'provideHover' , true ) ) {
5453 const hoverProvider = new FortranHoverProvider ( loggingService ) ;
55- vscode . languages . registerHoverProvider ( FORTRAN_DOCUMENT_SELECTOR , hoverProvider ) ;
54+ vscode . languages . registerHoverProvider ( FortranDocumentSelector ( ) , hoverProvider ) ;
5655 loggingService . logInfo ( 'Hover Provider is enabled' ) ;
5756 } else {
5857 loggingService . logInfo ( 'Hover Provider is not enabled' ) ;
5958 }
6059
6160 if ( extensionConfig . get ( 'provideSymbols' , true ) ) {
6261 const symbolProvider = new FortranDocumentSymbolProvider ( ) ;
63- vscode . languages . registerDocumentSymbolProvider ( FORTRAN_DOCUMENT_SELECTOR , symbolProvider ) ;
62+ vscode . languages . registerDocumentSymbolProvider ( FortranDocumentSelector ( ) , symbolProvider ) ;
6463 loggingService . logInfo ( 'Symbol Provider is enabled' ) ;
6564 } else {
6665 loggingService . logInfo ( 'Symbol Provider is not enabled' ) ;
@@ -74,30 +73,4 @@ export function activate(context: vscode.ExtensionContext) {
7473 https://github.com/hansec/fortran-language-server` ;
7574 promptForMissingTool ( LANG_SERVER_TOOL_ID , msg , 'Python' , loggingService ) ;
7675 }
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- }
10376}
0 commit comments