aboutsummaryrefslogtreecommitdiff
path: root/development/fortls/README
blob: f1d769c1ef192729b2c3f964a7d37cb836b88173 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
fortls is an implementation of the Language Server Protocol for Fortran
using Python (3.7+).

All code editors that support LSP can integrate with fortls; see the
section Editor Integration in the documentation. Some supported code
editors include: Visual Studio Code, Atom, Sublime Text, (Neo)Vim, and
Emacs.

Features:
  * Project-wide and Document symbol detection and Renaming
  * Hover support, Signature help and Auto-completion
  * GoTo/Peek implementation and Find/Peek references
  * Preprocessor support
  * Documentation parsing (Doxygen and FORD styles)
  * Access to multiple intrinsic modules and functions
    * ISO_FORTRAN_ENV GCC 11.2.0
    * ISO_C_BINDING GCC 11.2.0
    * IEEE_EXCEPTIONS, IEEE_ARITHMETIC, IEEE_FEATURES GCC 11.2.0
    * OpenMP OMP_LIB, OMP_LIB_KINDS v5.0
    * OpenACC OPENACC, OPENACC_KINDS v3.1
  * Diagnostics
    * Multiple definitions with the same variable name
    * Variable definition masks definition from parent scope
    * Missing subroutine/function arguments
    * Unknown user-defined type used in TYPE/CLASS definition (only if
      visible in project)
    * Unclosed blocks/scopes
    * Invalid scope nesting
    * Unknown modules in USE statement
    * Unimplemented deferred type-bound procedures
    * Use of non-imported variables/objects in interface blocks
    * Statement placement errors (CONTAINS, IMPLICIT, IMPORT)
  * Code actions
    * Generate type-bound procedures and implementation templates for
      deferred procedures