@@ -7,12 +7,12 @@ 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 FortranLanguageServer from './fortls-interface' ;
15+ import { EXTENSION_ID , FortranDocumentSelector , promptForMissingTool } from './lib/tools' ;
1616
1717// Make it global to catch errors when activation fails
1818const loggingService = new LoggingService ( ) ;
@@ -26,15 +26,15 @@ export function activate(context: vscode.ExtensionContext) {
2626 if ( extensionConfig . get ( 'linterEnabled' , true ) ) {
2727 const linter = new FortranLintingProvider ( loggingService ) ;
2828 linter . activate ( context . subscriptions ) ;
29- vscode . languages . registerCodeActionsProvider ( FORTRAN_DOCUMENT_SELECTOR , linter ) ;
29+ vscode . languages . registerCodeActionsProvider ( FortranDocumentSelector ( ) , linter ) ;
3030 loggingService . logInfo ( 'Linter is enabled' ) ;
3131 } else {
3232 loggingService . logInfo ( 'Linter is not enabled' ) ;
3333 }
3434
3535 if ( extensionConfig . get ( 'formatter' ) !== 'Disabled' ) {
3636 const disposable : vscode . Disposable = vscode . languages . registerDocumentFormattingEditProvider (
37- FORTRAN_DOCUMENT_SELECTOR ,
37+ FortranDocumentSelector ( ) ,
3838 new FortranFormattingProvider ( loggingService )
3939 ) ;
4040 context . subscriptions . push ( disposable ) ;
@@ -45,22 +45,22 @@ export function activate(context: vscode.ExtensionContext) {
4545
4646 if ( extensionConfig . get ( 'provideCompletion' , true ) ) {
4747 const completionProvider = new FortranCompletionProvider ( loggingService ) ;
48- vscode . languages . registerCompletionItemProvider ( FORTRAN_DOCUMENT_SELECTOR , completionProvider ) ;
48+ vscode . languages . registerCompletionItemProvider ( FortranDocumentSelector ( ) , completionProvider ) ;
4949 } else {
5050 loggingService . logInfo ( 'Completion Provider is not enabled' ) ;
5151 }
5252
5353 if ( extensionConfig . get ( 'provideHover' , true ) ) {
5454 const hoverProvider = new FortranHoverProvider ( loggingService ) ;
55- vscode . languages . registerHoverProvider ( FORTRAN_DOCUMENT_SELECTOR , hoverProvider ) ;
55+ vscode . languages . registerHoverProvider ( FortranDocumentSelector ( ) , hoverProvider ) ;
5656 loggingService . logInfo ( 'Hover Provider is enabled' ) ;
5757 } else {
5858 loggingService . logInfo ( 'Hover Provider is not enabled' ) ;
5959 }
6060
6161 if ( extensionConfig . get ( 'provideSymbols' , true ) ) {
6262 const symbolProvider = new FortranDocumentSymbolProvider ( ) ;
63- vscode . languages . registerDocumentSymbolProvider ( FORTRAN_DOCUMENT_SELECTOR , symbolProvider ) ;
63+ vscode . languages . registerDocumentSymbolProvider ( FortranDocumentSelector ( ) , symbolProvider ) ;
6464 loggingService . logInfo ( 'Symbol Provider is enabled' ) ;
6565 } else {
6666 loggingService . logInfo ( 'Symbol Provider is not enabled' ) ;
@@ -74,30 +74,4 @@ export function activate(context: vscode.ExtensionContext) {
7474 https://github.com/hansec/fortran-language-server` ;
7575 promptForMissingTool ( LANG_SERVER_TOOL_ID , msg , 'Python' , loggingService ) ;
7676 }
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- }
10377}
0 commit comments