|  | 
| 1 |  | -# Fortran Language Server - dev version | 
| 2 |  | - | 
| 3 |  | -> This is the developer's version for @hansec's original `fortran-language-server`. | 
| 4 |  | -> It contains bug fixes and new features that are yet to be merged into the main repository. | 
|  | 1 | +# fortls - the Fortran Language Server | 
| 5 | 2 | 
 | 
| 6 | 3 | [](https://pypi.org/project/fortls/) | 
| 7 | 4 | [](https://github.com/gnikit/fortran-language-server/actions/workflows/main.yml) | 
| 8 |  | -[](https://github.com/hansec/fortran-language-server/blob/master/LICENSE) | 
|  | 5 | +[](https://github.com/gnikit/fortran-language-server/blob/master/LICENSE) | 
| 9 | 6 | [](https://github.com/psf/black) | 
| 10 | 7 | 
 | 
| 11 |  | -A Fortran implementation of the [Language Server | 
| 12 |  | -Protocol](https://github.com/Microsoft/language-server-protocol) using | 
| 13 |  | -Python (3.6+). | 
|  | 8 | +`fortls`: A Fortran implementation of the [Language Server Protocol](https://github.com/Microsoft/language-server-protocol) | 
|  | 9 | +(LSP) using Python (3.6+). | 
| 14 | 10 | 
 | 
| 15 |  | -Editor extensions using this language server to provide autocomplete and | 
|  | 11 | +Editor extensions that can integrate with `fortls` to provide autocomplete and | 
| 16 | 12 | other IDE-like functionality are available for | 
| 17 |  | -[Atom](https://atom.io/packages/ide-fortran), [Visual Studio | 
| 18 |  | -Code](https://marketplace.visualstudio.com/items?itemName=hansec.fortran-ls), | 
|  | 13 | +[Visual Studio Code](https://github.com/krvajal/vscode-fortran-support) | 
|  | 14 | +[Atom](https://atom.io/packages/ide-fortran), | 
| 19 | 15 | [Visual Studio](https://github.com/michaelkonecny/vs-fortran-ls-client), | 
| 20 | 16 | [(Neo)vim](https://github.com/hansec/fortran-language-server/wiki/Using-forts-with-vim), | 
| 21 | 17 | and [Emacs](https://github.com/emacs-lsp/lsp-mode). | 
| 22 | 18 | 
 | 
| 23 |  | -## Language Server Features | 
|  | 19 | +## fortls vs fortran-language-server | 
|  | 20 | + | 
|  | 21 | +This project is based on @hansec's original Language Server implementation but the two projects have since diverged. | 
|  | 22 | +`fortls` (this project) is now developed independently of the upstream `hansec/fortran-language-server` project and contains numerous bug fixes and new features | 
|  | 23 | +the original `fortran-language-server` does not. | 
|  | 24 | + | 
|  | 25 | +The name of executable for this project has been chosen to remain `fortls` | 
|  | 26 | +to allow for integration with pre-existing plugins and workflows but it is | 
|  | 27 | +potentially subject to change. | 
|  | 28 | + | 
|  | 29 | +## Features | 
| 24 | 30 | 
 | 
| 25 | 31 | - Document symbols (`textDocument/documentSymbol`) | 
| 26 | 32 | - Auto-complete (`textDocument/completion`) | 
| @@ -60,7 +66,7 @@ and [Emacs](https://github.com/emacs-lsp/lsp-mode). | 
| 60 | 66 | pip install fortls | 
| 61 | 67 | ``` | 
| 62 | 68 | 
 | 
| 63 |  | -## Language server settings | 
|  | 69 | +## fortls settings | 
| 64 | 70 | 
 | 
| 65 | 71 | The following global settings can be used when launching the language | 
| 66 | 72 | server. | 
| @@ -101,16 +107,12 @@ server. | 
| 101 | 107 | 
 | 
| 102 | 108 | The following settings can be used to perform [standalone debug | 
| 103 | 109 | tests](https://github.com/hansec/fortran-language-server/wiki) on the | 
| 104 |  | -language server. | 
| 105 |  | - | 
| 106 |  | -- `--debug_filepath=DEBUG_FILEPATH` File path for language server | 
| 107 |  | -  tests | 
| 108 |  | -- `--debug_rootpath=DEBUG_ROOTPATH` Root path for language server | 
| 109 |  | -  tests | 
| 110 |  | -- `--debug_line=DEBUG_LINE` Line position for language server tests | 
| 111 |  | -  (1-indexed) | 
| 112 |  | -- `--debug_char=DEBUG_CHAR` Character position for language server | 
| 113 |  | -  tests (1-indexed) | 
|  | 110 | +fortls | 
|  | 111 | + | 
|  | 112 | +- `--debug_filepath=DEBUG_FILEPATH` File path for fortls tests | 
|  | 113 | +- `--debug_rootpath=DEBUG_ROOTPATH` Root path for fortls tests | 
|  | 114 | +- `--debug_line=DEBUG_LINE` Line position for fortls (1-indexed) | 
|  | 115 | +- `--debug_char=DEBUG_CHAR` Character position for fortls tests (1-indexed) | 
| 114 | 116 | - `--debug_full_result` Print full result object instead of condensed | 
| 115 | 117 |   version | 
| 116 | 118 | - `--debug_parser` Test source code parser on specified file | 
| @@ -195,7 +197,7 @@ back again one can do | 
| 195 | 197 | ### Preprocessing | 
| 196 | 198 | 
 | 
| 197 | 199 | **Note:** Preprocessor support is not "complete", see below. For | 
| 198 |  | -preprocessed files the language server will only analyze code within | 
|  | 200 | +preprocessed files the `fortls` will only analyze code within | 
| 199 | 201 | preprocessor conditional regions if the conditional test can be | 
| 200 | 202 | evaluated by the server or if the region is the _default_ path (ie. a | 
| 201 | 203 | bare `#else` region). | 
| @@ -243,49 +245,55 @@ right). | 
| 243 | 245 | } | 
| 244 | 246 | ``` | 
| 245 | 247 | 
 | 
| 246 |  | -## Bug reports | 
| 247 |  | - | 
| 248 |  | -When [filing | 
| 249 |  | -bugs](https://github.com/hansec/fortran-language-server/issues/new) | 
| 250 |  | -please provide example code to reproduce the observed issue. | 
| 251 |  | - | 
| 252 |  | -## License | 
| 253 |  | - | 
| 254 |  | -This project is made available under the [MIT | 
| 255 |  | -License](https://github.com/hansec/fortran-language-server/blob/master/LICENSE). | 
| 256 |  | - | 
| 257 |  | -## Support | 
| 258 |  | - | 
| 259 |  | -If you _really_ like [this | 
| 260 |  | -package](https://github.com/hansec/fortran-language-server) you can [buy | 
| 261 |  | -me a coffee](https://paypal.me/hansec) to say thanks. | 
| 262 |  | - | 
| 263 |  | -## Editor examples (Atom) | 
|  | 248 | +<!-- ## Editor examples (Atom) | 
| 264 | 249 | 
 | 
| 265 | 250 | Document symbols (`textDocument/documentSymbol`): | 
| 266 | 251 | 
 | 
| 267 |  | - | 
|  | 252 | + | 
| 268 | 253 | 
 | 
| 269 | 254 | Auto-complete (`textDocument/completion`): | 
| 270 | 255 | 
 | 
| 271 |  | - | 
|  | 256 | + | 
| 272 | 257 | 
 | 
| 273 | 258 | Signature help (`textDocument/signatureHelp`): | 
| 274 | 259 | 
 | 
| 275 |  | - | 
|  | 260 | + | 
| 276 | 261 | 
 | 
| 277 | 262 | Goto definition (`textDocument/definition`): | 
| 278 | 263 | 
 | 
| 279 |  | - | 
|  | 264 | + | 
| 280 | 265 | 
 | 
| 281 | 266 | Hover (`textDocument/hover`): | 
| 282 | 267 | 
 | 
| 283 |  | - | 
|  | 268 | + | 
| 284 | 269 | 
 | 
| 285 | 270 | Find references (`textDocument/references`): | 
| 286 | 271 | 
 | 
| 287 |  | - | 
|  | 272 | + | 
| 288 | 273 | 
 | 
| 289 | 274 | Diagnostics: | 
| 290 | 275 | 
 | 
| 291 |  | - | 
|  | 276 | + --> | 
|  | 277 | + | 
|  | 278 | +## Acknowledgements | 
|  | 279 | + | 
|  | 280 | +This project would not have been possible without the original work of [@hansec](https://github.com/hansec/) | 
|  | 281 | +and the original [`fortran-language-server`](https://github.com/hansec/fortran-language-server) | 
|  | 282 | + | 
|  | 283 | +## Support | 
|  | 284 | + | 
|  | 285 | +If you want to support this project you can do it through | 
|  | 286 | + | 
|  | 287 | +[](https://paypal.me/inikit) | 
|  | 288 | +[](https://www.buymeacoffee.com/gnikit) | 
|  | 289 | + | 
|  | 290 | +Support the original project go [here](https://paypal.me/hansec) | 
|  | 291 | + | 
|  | 292 | +## Bug reports | 
|  | 293 | + | 
|  | 294 | +When [filing bugs](https://github.com/gnikit/fortran-language-server/issues/new) | 
|  | 295 | +please provide example code to reproduce the observed issue. | 
|  | 296 | + | 
|  | 297 | +## License | 
|  | 298 | + | 
|  | 299 | +This project is made available under the [MIT License](https://github.com/gnikit/fortran-language-server/blob/master/LICENSE). | 
0 commit comments