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