@@ -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