|
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