- 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