|
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