A FORTRAN implementation of the Language Server Protocol using Python (2.7+).
Note: This language server is currently in the early stages of development. Not all features are supported or planned.
Document Symbols:
Auto Completion:
Go to definition:
Hover:
Diagnostics:
- Multiple use of the same variable name
- Unknown module in USE statement
- Variable masking definition from parent scope
pip install fortran-language-server
Project specific settings can be specified by placing a JSON file named .fortls
(example below)
in the root_dir
directory.
Setup module search paths:
By default all files with the suffix F,F77,F90,F95,F03,F08,FOR,FPP
(case-insensitive) in the
root_dir
directory, specified during initialization, and all its sub-directories are parsed and included in
the project.
Directories and files can be excluded from the project by specifying their paths (relative to root_dir
) in
the excl_paths
variable in the .fortls
file. Excluded directories also exclude all sub-directories.
Module directories can also be specified manually by specifying their paths (relative to root_dir
) in
the mod_dirs
variable in the .fortls
file. When mod_dirs
is specified directories are not added
recursively, so any nested sub directories must be explicitly listed. However, root_dir
does not need to
be specified manually as it is always included.
{ "mod_dirs": ["subdir1", "subdir2"], "excl_paths": ["subdir3", "subdir1/file_to_skip.F90"] }
When filing bugs please provide example code to reproduce the observed issue.
This project is made available under the MIT License.