- Added hover messages for Types and Modules (#208)
- Added support for Markdown intrinsics from the M_intrinsics repository (#215)
- Added and create a schema for fortls configuration files (#204)
- Added dependabot alers for PyPi (#222)
- Added
CITATION.cff
file to project roots
- Changed the completion signature to include the full Markdown documentation for the completion item. (#219)
- Changed hover messages and signature help to use Markdown (#45)
- Fixed end of scope for
CRITICAL
keyword blocks (#255) - Fixed bug where completion of interfaces in USE ONLY would produce the snippet (#150)
- Fixed bug where diagnostic messages were raised for non-existent variables (#173) (#175)
- Fixed submodule crashing bug and document/Symbol request failure (#233)
- Fixed debug interface parser not loading all configuration files (#221)
- Fixed name mangling of type-bound procedure pointers while hovering (#214)
- Fixed parsing start of multilines into AST (#217)
- Added additional default configuration file names
.fortlsrc
,.fortls.json
(#184) - Added coverage testing for multiple Python versions (#168)
- Added pre-commit.ci to
fortls
(#168)
- Fixed
intent(in out)
not being parsed correctly (#160)
- Fixed issue where
pip
would install without--user
and fail (#163)
- Fixed bug thorowing diagnostic errors if arguments were named
pure
,elemental
, etc. (#157)
- Fixed
workspace/didChangeConfiguration
requests that caused errors in VS Code logs (#114)
- Fixed glob pattern resolution for command line arguments (#142)
- Changed the default value of the following options when a mix the command line
interface and the
json
interface are used. Instead of having thejson
interface default the values to an empty set it now defaults to the values of the command line:excl_paths
,source_dirs
,incl_suffixes
,excl_suffixes
,include_dirs
(#143)
- Added support for comments in the
json
configuration files (#137) - Added
sitemap.xml
to documentation webpage (#134)
- Fixed bug where error messages did not post correctly (#135)
- Added doctests in the pytest test suite (#131)
- Renamed variables to simplify parser (#133)
- Redesigned parsing functions for short-hand declarations of array dimensions, character length and parsing of kind (#130)
- Redesigned the
fortls
website to be more aesthetically pleasing and user-friendly (#112)
- Fixed bug where submodule procedure scopes would terminate early if keyword modifiers were used (#119)
- Added
textDocument/documentHighlight
request for Vim and EMACS (#43) - Added
pre-commit
hook withflake
,black
,isort
andpyupgrade
(#106) - Added test support for diagnostic messages
- Changed code structure, reformatted files and changed name conventions (#109)
- Updated CONTRIBUTING instructions
- Added multiple unittests for diagnostic messages
- Added
pre-commit
hook to the project (#106) - Added Code of Conduct
- Added basic support for hovering over
ASSOCIATE
blocks (#62)
- Changed the naming convention for Fortran Objects (#109)
- Formatted all files with
pre-commit
- Fixed remote coverage report line diff (#101)
- Added keywords to the PyPi manifest (#99)
- Updated
README
to include logo and animations - Updated
README
to include conda-forge installation instructions
- Added unittests for intrinsics and improved overall coverage
- Restructured unittests to individual files for more granular reporting
- Automated the update for GitHub Actions
- Added coverage reporting for Unix + Windows
- Improved autocompletion for Fortran statements F2018 compliant (#63)
- Fixes GoTo Implementation error for intrinsics (#80)
- Changed how renaming of implicitly named type-bound procedures and their implementations is handled. Unittest was added.
- Rewrote the Fortran parser to be clearer and more modular
- Disable PyPi autoupdating for pre-releases and dev versions
- Changed the auto-update feature to skip
anaconda
environments since they handle their dependencies throughconda
and notpip
- Fixed missing dependency from
setup.cfg
(#78) - Updated configuration file variables in documentation
- Added the capability for
fortls
to auto-update use--disable_autoupdate
to disable (#76)
- Deprecated
--variable_hover
option and now is always enabled (#46)
- Updated
setup.cfg
in preparation of submitting package toconda-forge
- Added
Editor Integration
section in documentation
- Fixed parsing of
defined
without by parenthesis surrounding the definition (#67)
- Fixed hovering value of literal and constant strings not displaying (#54)
- Fixed hovering string length size is now matching the string (#55)
- Fixed space separated keywords not being displayed upon hover (#60)
- Changed reading in
json
files to be encoded as UTF-8 (#51)
- Changed the way function hover messages are displayed, now signatures are standardised (#47)
- Fixed hovering over functions displaying as theire result types (#22)
- Fixed function modifiers not displaying upon hover (#48)
- Fixed function hover when returning arrays (#50)
- Changed default branch to master and updated Actions workflows
- Added semantic versioning with
setuptools_scm
(#34)
- Changes from
setup.py
tosetup.toml
andpyproject.toml
(#33) - Changed documentation CI to up to date action
- Formatted Python imports with
isort
- Fixed code autocompletion bug with f-strings (#39)
- Added additional shields to REAMDE, including coverage and Python versions
- Added coverage metric for Codecov
- Added coverage for
WHERE
,ENUM
, max line/comment diagnostics and multilines - Adds Windows CI
- Fixed global
sort_keywords
option not propagating during parsing on Windows (#36) - Fixed unittests not propagating debugger state (#35)
- Add support for absolute include, source and exclude paths
- Changed
USE_info
named tuple to storing use modules assets
instead oflists
- Changed
include_dirs
from alist
to aset
- Automates the versioning with GitHub releases
- Fixed some mutable default argument warnings in methods and classes
- Fixed private variables showing in autocomplete (#191) (#3)
- Adds support for including preprocessor definitions from files same as
pp_defs
- Adds hover support for preprocessor variables
- Adds Go To Definition for
include
statements - Adds intrinsic support for
OpenACC
version 3.1 - Adds sphinx autogenerated documentation
- Adds
incl_suffixes
as a configuration option - Adds
EXTERNAL
as an attribute upon hover
- Update constant parameters for
omp_lib
andomp_lib_kinds
Interface v5.0 - Format json files with
prettier
- Initialises the log channel and adds
$/setTrace
to override client's (i.e. VS Code) loglevel - Unified the interfaces from the command line and the configuration options file (#17)
- Updated the documentation and simplified the README.md
- Option
--preserve_keyword_order
has been substituted with its opposite--sort_keywords
- Fixes the hover of preprocessor functions. It now displays the function name witout the argument list and the function body. The argument list cannot be multiline but the function body can.
- Fixes objects marked
EXTERNAL
across multiple lines (#169) - Fixes include with external files (#13)
POINTER
attribute now displays upon hover (#16)- Fixes
END FORALL
end of scope error (#18) - Fixes Fortran line continuation definitions intermingled with preprocessor directives (#203) (#4)
- Fixes
USE
directive ordering issues (#184) (#7)
- Further improves the literal variable hover added in v1.14.0
- Fixes premature end of scope with variables named
end
(#9)
- Adds
--config
option which allows arbitrary named configuration files
- Fixes import host association includes (autocomplete work not complete) (#187)
- Fixes parsing of
non_intrinsic
modules (#206)
- Fixes error while parsing submodule parent name with spaces (#207)
- Fixes language server features not triggering for variables in column 0
- Fixes (partially) Fortran literal variable hover (#188)
- Adds Python glob support for
excl_paths
,source_dirs
,include_dirs
- Fixes diagnostic error with interfaces as function arguments (#200)
- Add support for disabling diagnostics globally or on a per-project basis, ref PR 163
- Fix bug with enum declarations, fixes #167
- Fix typo in "ISHIFT" and "ISHIFTC" intrinsic functions, ref PR 165
- Fix bug with hover requests introduced in v1.11.0, fixes #159
- Add support for specifying the language name returned for hover requests, ref Fortran IntelliSense #17
- Add support for submodule implementations using the "PROCEDURE" keyword, fixes #152
- Fix bug with keywords in old style function declarations, fixes #154
- Fix bug when searching an empty scope, fixes #151
- Remove erroneous double definition/masking checks for interfaces, fixes #18 and #138
- README: Add fix for possible installation error
- Fix parsing bug with spaces in "old-style" kind specifications, fixes #142
- Fix issue with erroneous sub-word matching in preprocessor macro substitutions, fixes #141
- Fix "can't set attribute" error in USE traversal, fixes #132
- Fix bugs related to optional leading ampersands on continuation lines, fixes #131
- Fix bug in block parsing with string literals, fixes #128
- Fix bug in semicolon parsing, fixes #127
- Initial implementation of preprocessor include file handling, ref #115
- Add support for specifying file suffixes for preprocessing, ref #115
- Add support for completion in visibility statements, fixes #120
- Support "onOpen" requests before a file is written to disk, fixes #123
- Add support for IMPURE keyword (contributed by @mcocdawc)
- Improve readability by replacing various result arrays with namedtuples
- Fix bug in open string literal detection, fixes #124
- Fix bug with multiline docstrings that start with a trailing comment, fixes #118
- Fix symbols types for subroutines and methods in "documentSymbol" and "completion" requests, fixes #117
- Fix bug where ONLY renaming was not fully tracked in some circumstances
- Fix bug with inline dimension specifications for variables
- Fix accidental message swap in "object not found" and "object not imported" diagnostics
- Fix bug where errors were reported with "module subroutine" and "module function" definitions (no import required)
- Fix bug in USE ONLY accounting used for graph pruning, fixes #122
- Add support for USE statement renaming requests, ref #109
- Add support for argument information in variable hover requests, fixes #107
- Add support for disabling snippets in autocomplete results, fixes #112
- Prevent file AST updates on Open/Close requests when contents have not changed, ref #105
- Reduce unnecessary parsing with single line file changes
- Debugging: Add support for printing full result object
- Remove required space between "DOUBLE PRECISION" and "DOUBLE COMPLEX" definitions, fixes #110
- Fix requests when a user-defined type variable has the same name as a defined type used in that scope
- Fix parsing single line WHERE statements with trailing parentheses, fixes #106
- Fix erroneous object duplication diagnostics for DO, INTERFACE, etc. blocks
- Remove erroneous "unimplemented procedure" diagnostics from abstract type definitions
- Fix parsing bugs with semicolons in trailing comments
- Fix bug with requests in lines with tab characters, fixes #93
- Fix bug with requests following "WRITE(*,*)" statements
- Add full support for ASSOCIATE statements, fixes #101
- Filter completion suggestions after "MODULE PROCEDURE" statements, fixes #103
- Filter completion suggestions in type-bound procedure links
- Add support for including external source file directories
- Diagnostics: Line length exceeds maximum length errors
- Speedup language server initialization
- Speedup "textDocument/references" requests
- Fix case preservation in hover requests, fixes #102
- Fix rename requests for type-bound procedures without an explicit link statement (ie. "=>"), fixes #104
- Fix incorrect "CONTAINS" diagnostic errors with procedure pointers and external interfaces
- Fix bug in diagnostic construction/reporting (introduced in v1.7)
- Fix bugs caused by accidental modification of child object lists
- Fix bug with definition/hover requests involving intrinsic functions/modules/variables (introduced in v1.7)
- Fix bug with completion and signatureHelp requests on continuation lines (introduced in v1.7)
- Fix out-of-range error with various requests on zero-length lines (introduced in v1.7)
- Add initial support for "textDocument/codeAction" requests, generate unimplemented deferred procedures
- Show subroutine/function keywords ("PURE", "ELEMENTAL", etc.)
- Add position of object in line to "textDocument/definition" and "textDocument/implementation" results
- Diagnostics: CONTAINS statement placement errors
- Diagnostics: Visibility statement placement errors
- Command line options: Notify when workspace initialization is complete
- Command line options: Set number of threads used during initialization
- Significant refactoring of core code
- Fix "RecursionError" exception with circular user-defined type references, fixes #100
- Fix bug detecting TYPE definitions with an immediately following colon, ref #100
- Fix incorrect diagnostics for interface statements with USE instead of IMPORT statements
- Add support for EXTERNAL subroutines
- Diagnostics: Missing subroutine/function arguments and argument declarations
- Diagnostics: Unimplemented deferred type-bound procedures
- Diagnostics: Unknown TYPE/KIND objects (only if candidate is visible in workspace)
- Diagnostics: IMPORT statements (missing objects and placement)
- Diagnostics: Basic handling for IMPLICIT statements
- Add support for semicolon separators and multiline preprocessor macros, fixes #98
- Add various "parsing errors" to debug_parser output
- Use consistent file access method across debug_parser run and language server requests
- Add support for "textDocument/rename" requests
- Add initial support for Doxygen and FORD style comment blocks, ref #44
- Fix language server crash with unknown user-defined type fields
- Deprecate "mod_dirs" option in favor of more accurate "source_dirs". Support for "mod_dirs" will be removed in a future release.
- Add support for "textDocument/implementation" requests, ref #94
- Add option to preserve keyword ordering, ref #97
- Fix parsing bug with single line WHERE statements, fixes #92
- Fix bug with keyword parsing with nested parenthesis, fixes #97
- Differentiate between type-bound procedures and implementations in "textDocument/references" requests, fixes #94
- Fix typos in MAX and MIN intrinsic functions, ref #96
- Add support for user-defined type members in "textDocument/references" requests, fixes #88
- Link type-bound procedures with no explicit link to matching named scope in module, fixes #89
- Report diagnostics related to misplaced "CONTAINS" statements
- Restructure README for improved clarity on capabilities/limitations
- Fix bug with blank/empty lines in free-format continuations, fixes #91
- Fix exception in "textDocument/references" requests when no object is found, fixes #86
- Fix bug when relative path is used for --debug_rootpath, fixes #87
- Fix bug in nested user-defined type inheritance, fixes #85
- Fix bug in completion requests with empty parenthesis in request line
- Add support for local variables/objects in "textDocument/references" requests, ref #84
- Improve preprocessing to handle more types of conditional statements and macro substitution, ref #78
- Report diagnostics for excess "END" statements instead of causing parser failure, ref #78
- Fix missing "textDocument/references" results when line starts with target object, fixes #84
- Fix bug with backslash URI separators on Windows, fixes #83
- Add initial implementation of simple preprocessor, ref #78
- Updated Fixed/Free detection logic using ampersands to check for comment line, fixes #81
- Support use of "END" as a variable, fixes #82
- Add support for named "SELECT" statements, fixes #80
- Track scopes for "ASSIGNMENT" and "OPERATOR" interface statements, fixes #79
- Fix bug in parsing "SELECT" statements with no space, fixes #77
- Further improve discrimination between end statements and other items, ref #73
- Normalize file paths when storing/accessing file index, fixes #75
- Fix intrinsic statement "COUNT" (#76)
- Further improve discrimination between end statements and variables/block labels, ref #73
- Fix autocomplete errors when ASSOCIATE and ENUM statements are present
- Fix severity reporting with "debug_diagnostics" command line option
- Fix discrimination between end statements and variables with underscores, fixes #73
- Detect enum definitions, fixes #74
- Detect and support associate statements, fixes #72
- Add parsing of DO/IF/WHERE blocks and report scope end errors
- Detect and report errors with invalid parent for scope definitions
- Improve highlighting for hover requests in VSCode
- Downgrade missing use warnings to information level
- Add intrinsic declaration statement "double complex" (#70)
- Fix bug with leading whitespace on visibility statements, fixes #69
- Fix parsing errors when "&" and "!" characters are present inside string literals
- Fix parsing bug with multiple leading function/subroutine modifiers (PURE, ELEMENTAL, etc.)
- Fix detection of function definitions with leading module and variable statements, fixes #66
- Properly close remaining open scopes at end of file
- Initialize scope "eline" property, PR #67
- Improve handling of different file encodings, PR #57
- Fix autocomplete results for inherited members of user-defined types when the member type definition is only available in parent type's scope
- Add support for generic interfaces in type-bound procedures, #64
- Add parent scope information to masked variable errors, #48
- Fix parsing deferred length character definitions, #61
- Fix parsing function definitions with modifiers before type, #63
- Fix parsing with array construction in subroutine/function calls, #60
- Add basic support for workspace/symbol requests
- Add support for excluding source files based on a common suffix
- Prevent detection of variables starting with "use" as USE statements, #59
- Improve parsing of USE ONLY statements, #53
- Make sure explicitly specified module directories exist, fixes #52
- Fix visibility statements with trailing comments, #49
- Check for existence of file during "textDocument/didClose" requests, #46
- Encode text as UTF-8 in change requests, fixes #41
- Add support for generating debug logs
- Add Fortran statements to autocomplete suggestions
- Add support for explicit dimension specifications, fixes #37
- Add support for F03 style bracket array initialization, fixes #35
- Fix crash in completion requests with intrinsic modules
- Reformat completion information and snippets to match common language server conventions
- Provide hover information for overloaded interfaces
- Add support for autocompletion in select type statements
- Add support for type bound procedures with explicit pass statements
- Add support for arguments defined as interfaces in hover and signatureHelp requests
- Unbetafy signatureHelp support
- Fix linking type bound procedures with same name as subroutine/function definition
- Improve detection of block statements, fixes #32
- Fix autocompletion with mixed case object definitions
- Fix variable definition detection without spaces, fixes #30
- Add option for displaying hover information for variables
- Add subroutine/function keywords to hover information
- Add more keywords to variable information
- Support spaces between subroutine name and parentheses in signatureHelp
- Fix bug with file paths that include spaces, fixes #29
- Fix bug where arguments were erroneously dropped for procedure variables
- Fix bug where arguments of procedure type did not have definition information in subroutine/function hover results
- Correct spelling of incremental_sync argument, fixes #28
- Add support for signatureHelp requests with non-overloaded subroutines/functions
- Provide autocomplete and hover information for procedures with explicit interface definitions
- Add support for Fortran 2008 block constructs, fixes #23
- Add support for "DOUBLE COMPLEX" datatype
- Fix bug where external interfaces were erroneously public in default private modules
- Fix bug producing repeated objects with include statements
- Catch and report more types of errors related to file processing, fixes #21
- Fix bug with incremental sync using VSCode on windows, fixes #20
- Add keywords to autocomplete results in variable definition statements
- Filter autocompletion results in extend, import, and procedure statements
- Ignore completion requests on scope definition and ending lines to reduce autocomplete noise
- Filter autocompletion results in variable definition statements to reduce autocomplete noise (variables only)
- Ignore autocomplete and definition requests on preprocessor lines
- Add option to test completion and definition requests in debug mode
- Improve export of abstract and external interfaces for completion and definition requests
- Fix scope name detection to prevent confusing variables that start with Fortran statement names
- Fix handling of external and abstract interface specifications
- Fix bug preventing unrestricted USE statements from overriding USE only statements
- Fix bug where file parsing ended prematurely in some cases with line continuations
- Add intrinsic functions and modules to autocomplete suggestions
- Add support for include statements
- Remove erroneously included global objects from autocomplete results in USE ONLY statements
- Fix displayed type for derived type objects in autocomplete requests
- Add support for find_references, global and top-level module objects only
- Filter autocomplete suggestions for callable objects in call statements
- Speedup initialization and updates on large projects by accelerating construction of USE tree
- Fix parser error with definitions requiring enclosing scopes in #include files and unnamed programs, fixes #17
- Fix parser failure with visibility statements in included fortran files, fixes #16
- Fix detection of lines with trailing comments
- Automatically trigger autocomplete on
%
character - Show named interfaces and prototypes in document outline
- Add support for autocomplete without prefix filtering
- Fix occasional language server error in autocompletion with class methods
- Fix parsing errors with incomplete function definitions
- Fix bugs in symbol and parser debugging
- Improve unicode file handling with Python 3.x
- Add support for unnamed programs, fixes #13
- Fix parser error with uppercase characters in scope names, fixes #11
- Add support for object names with a leading underscore, fixes #9
- Do not report diagnostics inside preprocessor if statements, fixes #7
- Improved Windows support and added AppVeyor CI testing
- Add support for snippets in autocompletion
- Ignore requests in comment sections
- Fix bug with string/byte handling in Python 3
- Fix bug with multiprocess support on Windows
- Fix bug with URI formatting and paths on Windows, fixes #8
- Fix parsing variable definitions containing separators inside strings, fixes #4
- Fix incorrect variable masking error in functions, fixes #5
- Do not report intrinsic modules as unknown, fixes #2 and #3
- Do not show warnings for variable masking in interface definitions
- Respect visibility statements when searching for object in scope
- Fix bug in incremental document sync with ending newline
- Add basic file diagnostics (double declaration, variable masking, unknown USE)
- Indicate optional arguments in autocomplete suggestions
- Detect source code format from file contents instead of extension
- Add support for incremental document synchronization
- Fix parsing error when variable definition line is incomplete
- Fix incorrect line handling with open parentheses
- Fix bug when file parsing/hashing fails in workspace initialization
- Add support for recursive directory inclusion from "root_path"
- Provide option to skip type members in documentSymbol requests
- Apply visibility statements to objects for autocomplete suggestions
- Filter interface suggestions to only show unique signatures
- Link imported procedures in interface definitions
- Fix line continuation handling for free form files with trailing and leading ampersands
- Improve parentheses matching in line parsing
- Handle line continuations in language server requests
- Add server version number to help output
- Fix bug when parsing files with unicode characters
- Include interfaces in autocomplete suggestions
- Restrict autocomplete suggestions by object visibility
- Improve USE statement traversal
- Add notifications for parser failures
- Fix bug where parsing errors during workspace initialization could crash the language server
- Synchronize version numbers
- fix download link in setup.py
- Initial release