Releases: MarkusAmshove/natls
Releases · MarkusAmshove/natls
v0.15
What's Changed
🚀 Language Server
- Add postfix completion for SCAN and MASK (#521) @MarkusAmshove
- Add hover documentation for MASK (#520) @MarkusAmshove
- Add postfix completion for array element expressions (#513) @MarkusAmshove
- Include
VIEW OF
in variable hover context (#511) @MarkusAmshove
🐑 Analyzer
- Highlight whole TRANSACTION statements when creating diagnostics (#526) @Claes65
- Added hidden work file analyzer (#523) @Claes65
- Add diagnostics for hidden transactions (#519) @Claes65
- Add diagnostics for inline Parameters (#503) @Claes65
- Extend unreachable code analyzer with TERMINATE, FETCH and STOP (#505) @MarkusAmshove
🔎 Parser
- Parse DDM subdescriptors (#508) @MarkusAmshove
- Implement parameter check for external modules (#518) @MarkusAmshove
- Enhance PlainPostion with spanning method for use in diagnostics (#525) @Claes65
- Allow multiple modules with the same referable name (#514) @MarkusAmshove
- Add diagnostic for errors in construction of DECIDE statement (#512) @Claes65
- Support mainframe specific not sign ¬ (#495) @awilkins
🪲 Bugfixes
- Allow EM, HD and PM on view variables without type (#539) @MarkusAmshove
- Fix open preview codelens position for INCLUDEd inputs (#535) @MarkusAmshove
- Fix go-to-references inside Copycodes (#533) @MarkusAmshove
🧰 Maintenance
- Bump action-download-artifact (#541) @MarkusAmshove
- Update toolchain resolver plugin (#534) @MarkusAmshove
- Update Guava (#504) @MarkusAmshove
v0.14
What's Changed
🚀 Language Server
- Log ignored exceptions on endpoints (#501) @MarkusAmshove
- Add endpoint returning all CONSTs from LDAs (#499) @MarkusAmshove
- Include by value (result) modifier when hovering (#486) @MarkusAmshove
- Disable formatting for DDMs (#480) @MarkusAmshove
- Add increment and decrement postfix completion for numeric variables (#477) @MarkusAmshove
- Reformat Variable hover context and array dimensions (#476) @MarkusAmshove
🐑 Analyzer
- Add diagnostic for leftover git merge markers (#500) @Claes65
- Add diagnostic for code in between subroutines (#498) @Claes65
- Add diagnostic to flag INDEPENDENT as discouraged (#497) @Claes65
- Add diagnostic for variables that are only written and never read (#478) @MarkusAmshove
- Raise a diagnostic for unreachable code (#491) @MarkusAmshove
- Raise a diagnostic for unnecessary IGNORE statements (#490) @MarkusAmshove
- Raise diagnostics for natunit tests that are not in the TEST subroutine (#496) @MarkusAmshove
🔎 Parser
- Fully support DISPLAY statement (#488) @Claes65
- Support DDMs with non- and hyperdescriptors (#494) @Claes65
- Parse IF NO and OPTIMIZE FOR in SELECT (#492) @Claes65
- Translate token kinds in diagnostics to keywords (#487) @MarkusAmshove
- Follow symbolic links when indexing projects (#489) @acnsalb
- Remove unused array dimension workarounds (#479) @MarkusAmshove
- Recognize *SUBROUTINE system variable (#474) @MarkusAmshove
- Add parser diagnostics about END statement (#468) @Claes65
- Parse END TRANSACTION statements (#471) @MarkusAmshove
- Parse
.
as END node (#470) @MarkusAmshove
🪲 Bugfixes
🧰 Maintenance
- Update LSP4J (#473) @MarkusAmshove
v0.13
What's Changed
🚀 Language Server
- Inherit statement level attributes (#461) @MarkusAmshove
- Add VAL postfix to alphanumeric types (#460) @MarkusAmshove
- Add case translation postfix snippets (toLowerCase, toUpperCase) (#459) @MarkusAmshove
- Implement postfix completion (#457) @MarkusAmshove
- Fix variable hover on input operands (#456) @MarkusAmshove
- Add endpoint to return structural information about INPUT statements (#453) @MarkusAmshove
- Change background initialization messages (#452) @MarkusAmshove
🔎 Parser
- Consume RULEVAR and INCDIR (#462) @MarkusAmshove
🧰 Maintenance
- Upgrade to Java 21 (#455) @MarkusAmshove
v0.12
What's Changed
🚀 Language Server
- Implement code folding (#445) @MarkusAmshove
- Fix completion within functions (#439) @MarkusAmshove
🐑 Analyzer
- Do not raise operator diagnostics in including modules (#443) @MarkusAmshove
- Raise a diagnostic if SPECIFIED is used on non-OPTIONAL variable (#441) @MarkusAmshove
🔎 Parser
- Recognize multiple specified implicit attributes (#446) @MarkusAmshove
- Raise a diagnostic for an unhandled exception as error recovery (#448) @MarkusAmshove
- Parse positioning INPUT operands (#447) @MarkusAmshove
- Parse attributes for INPUT statements (#444) @MarkusAmshove
- Infer data type when variable is used as array index access (#440) @MarkusAmshove
🪲 Bugfixes
- Fix completion within functions (#439) @MarkusAmshove
🧰 Maintenance
- Update lsp4j (#450) @MarkusAmshove
v0.11
What's Changed
🚀 Language Server
- Add code action to create DEFINE PROTOTYPE (#427) @MarkusAmshove
- Properly complete CALLNAT if string literal is already present (#437) @MarkusAmshove
- Move external reference codelens to subroutine in external subroutines (#436) @MarkusAmshove
- Rework variable hover to have a more compact layout (#435) @MarkusAmshove
- Add snippet for for-loops on group arrays (#434) @MarkusAmshove
- Declare unresolved qualified variables in groups (#433) @MarkusAmshove
- Show inline hints for line numbers in input statements (#426) @MarkusAmshove
- Omit PERFORM and CALLNAT in code completion if they're already present (#425) @MarkusAmshove
- Use type inference to create more specific types when fixing undeclared variables (#423) @MarkusAmshove
- Handle external change notifications for modules (#421) @MarkusAmshove
- Remove Asterisk as trigger char for completion (#424) @MarkusAmshove
- Use go to definition to jump between opening and closing statement keywords (#418) @MarkusAmshove
- Trigger and filter variable completion on qualified names (#419) @MarkusAmshove
🔎 Parser
- Raise a diagnostic for qualified array access (#428) @MarkusAmshove
🪲 Bugfixes
- Fix qualified completion when always qualify option is disabled (#420) @MarkusAmshove
v0.10
What's Changed
- Update LSP4J (#397) @MarkusAmshove
🚀 Language Server
- Parse callers of module when resolving incoming hierarchy calls (#416) @MarkusAmshove
- Add context dependant completion for data areas (#415) @MarkusAmshove
- Add codelens and command to switch between test case and tested module (#414) @MarkusAmshove
- Implement experimental async initialization (#409) @MarkusAmshove
- Provide hover documentation for math functions (#407) @MarkusAmshove
- Add statement snippet for FOR index (#405) @MarkusAmshove
- Support rename of modules and their call sites (#273) @MarkusAmshove
🐑 Analyzer
- Migrate value truncation check to an Analyzer (#398) @MarkusAmshove
- Report mismatch of function file name and function name (#380) @MarkusAmshove
🔎 Parser
- Disambiguate view variable access depending on adabas access context (#413) @MarkusAmshove
- Check DEFINE DATA scope in data areas (#410) @MarkusAmshove
- Use diagnostics additional position feature for typechecking errors (#401) @MarkusAmshove
- Skip EM, HD, PM definitions for View fields (#394) @Claes65
- Make IF BREAK part of conditionCriteria() (#393) @Claes65
- Support for sub-SELECTs and FETCH FIRST for SELECT statement (#391) @Claes65
- Fix for statements using an attribute as a report name (#385) @Claes65
- Adding missing attributes (#390) @Claes65
- COMMA can also be used as array access separator for labels (#383) @Claes65
- Fix for INPUT MARK **systemvar (#381) @Claes65
- Support old-style jump labels (#371) @Claes65
- Fix optional IN LOGICAL order for READ (#370) @Claes65
🎲 SonarQube
- Implement natlint plugin for SonarQube (#386) @MarkusAmshove
🪲 Bugfixes
- Fix statement insertion position inside functions (#408) @MarkusAmshove
- Fix MessageProgressMonitor sending more messages than intended (#406) @Claes65
- Bugfix for EXAMINE...GIVING and DELIMITER SPACE (#399) @Claes65
- Fix for INPUT MARK, part 2 (#382) @Claes65
- Fix parsing of right parens inside a string in editor masks (#376) @MarkusAmshove
- Extract referable name from functions during indexing (#379) @MarkusAmshove
- Fix optional IN LOGICAL order for READ (#370) @Claes65
🧰 Maintenance
4 changes
- Replace deprecated Gradle configurations (#402) @MarkusAmshove
- Update actions steps that use deprecated Node version (#400) @MarkusAmshove
- Automatically create an issue with after-release tasks (#375) @MarkusAmshove
- Publish jars to maven central (#372) @MarkusAmshove
v0.9
What's Changed
🚀 Language Server
- Reparse callers of copycodes after save (#368) @MarkusAmshove
- Prefer token over nodes while hovering (#350) @MarkusAmshove
🔎 Parser
- Add additional positional information to diagnostics (#365) @MarkusAmshove
- Add diagnostics for expected operands and keywords (#366) @MarkusAmshove
- Fix REDEFINE detection for FILLERs in VIEWs (#362) @MarkusAmshove
- Raise a diagnostic if FILLER is used outside of REDEFINE (#361) @MarkusAmshove
- Extend type checking of COMPRESS to operands and target (#357) @MarkusAmshove
- Allow uninitialized variables as array dimensions in views (#356) @MarkusAmshove
- Allow mixed string literal types for string concat (#355) @MarkusAmshove
- Add folders from include/ directory as libraries (#354) @MarkusAmshove
- Consume OPTIONS statement (#353) @MarkusAmshove
- Load variable type info from DDMs (#352) @MarkusAmshove
🪲 Bugfixes
- Allow StringConcat to start with hex literal (#360) @MarkusAmshove
- Include array access in extract subroutine (#358) @MarkusAmshove
🧰 Maintenance
- Release proper maven artifacts to GitHub Packages (#369) @MarkusAmshove
v0.8
What's Changed
🚀 Language Server
- Add Quickfix to import PDA with PARAMETER USING (#329) @MarkusAmshove
- Add Quickfix to declare parameter (#328) @MarkusAmshove
- Add refactoring to extract inline subroutine (#327) @MarkusAmshove
- Add Quickfix to create internal subroutine from unresovled perform (#326) @MarkusAmshove
- Add external subroutines and subprograms to code completion (#318) @MarkusAmshove
🔎 Parser
- System Functions brush-up (#334) @Claes65
- Substitute copycode parameter before the source is lexed (#339) @MarkusAmshove
- Check string literal length for empty literals (#336) @MarkusAmshove
- Rework variable group handling while parsing DEFINE DATA (#285) @MarkusAmshove
- Extend currently parsed statements by mutability information (#333) @Claes65
- Parse CALL family (#331) @Claes65
- Parse GET family (#330) @Claes65
- Don't allow BEFORE to be an identifier (#320) @MarkusAmshove
- Parse SORT statement (#312) @Claes65
- Parse READ and make DBMS parsing less redundant (#315) @Claes65
🪲 Bugfixes
- Calculate REDEFINE length only for fields not in VIEWs (#344) @Claes65
- Bugfix: Label Identifier preceding SORT in SORT statement (#343) @Claes65
- Bugfix: CURSOR is also SV (#341) @Claes65
- Fix type checking of binary type (#335) @Claes65
- Fix parsing of subsequent redefine fillers (#337) @MarkusAmshove
- Fix READ WORK option detection for ADJUST (#324) @MarkusAmshove
🧰 Maintenance
v0.7
What's Changed
🚀 Language Server
- Add functions (NS7) to code completion (#308) @MarkusAmshove
- Add inlay hints for target types on assignments (#296) @MarkusAmshove
- Add config to always insert qualified variable names (#282) @MarkusAmshove
🐑 Analyzer
- Disable comparison style analyzer by default (#304) @MarkusAmshove
- Analyze variable qualification (#286) @Claes65
- Check literal conditionals in DECIDE blocks always resolving to false (#234) @MarkusAmshove
🔎 Parser
- Parse MOVE statement (#302) @Claes65
- Parse REPEAT statement (#305) @Claes65
- Add a check for variable groups to not contain CONST and non-CONST (#303) @MarkusAmshove
- Typecheck variable initializers (#301) @MarkusAmshove
- Make SEPARATE support variable mutability analysis (#295) @Claes65
- Parse ACCEPT/REJECT statements (#292) @Claes65
- Typecheck simple assignments (#290) @MarkusAmshove
- Parse SEPARATE statement (#279) @Claes65
- Add inferred type to type mismatch message (#272) @MarkusAmshove
- Skip to DEFINE DATA if a module contains it (#271) @MarkusAmshove
- Parse WRITE TRAILER/NOTIT and HISTOGRAM ... WHERE (#269) @Claes65
- Parse COMPOSE statement (#267) @Claes65
🪲 Bugfixes
- Search nodes only in same file as cursor position (#313) @MarkusAmshove
- Fix skip to DEFINE DATA for functions (#311) @MarkusAmshove
- Make USING not import variables from module types other than data areas (#307) @MarkusAmshove
- Improve literal and parens detection in attributes (#299) @MarkusAmshove
- Fix parsing variable EXAMINE DIRECTION clause (#300) @Claes65
- Bug for NPP015 (REDEFINE length) partially fixed (#274) @Claes65
- Misc. add-ons and bug fixes for NPP016 (#278) @Claes65
- Fix diagnostic position of duplicated symbols from USINGs (#277) @MarkusAmshove
📖 Documentation
v0.6
What's Changed
🚀 Language Server
- Complete system variables and functions (#261) @MarkusAmshove
- Implement formatting API for uppercase translation (#245) @MarkusAmshove
- Remove artifical SyntaxKind name from hovers (#240) @MarkusAmshove
🔎 Parser
- Allow compress WITH without delimiter keywords (#263) @MarkusAmshove
- Parse PRINT like WRITE (#260) @MarkusAmshove
- Partially parse INPUT statements (#259) @MarkusAmshove
- Parse time and extended time literals (#258) @MarkusAmshove
- Create own HEX_LITERAL type (#257) @MarkusAmshove
- Parse date literals (#256) @MarkusAmshove
- Add *WINDOW-POS and *PID (#255) @MarkusAmshove
- Allow nested parens in EM attribute (#253) @MarkusAmshove
- Parse other variants of SELECT (#248) @Claes65
- Parse *TRIM options (#250) @MarkusAmshove
- Parse line advancement and skips in WRITE (#249) @MarkusAmshove
- Parse attribute SB (#246) @Claes65
- Allow 'FORMATTED' Type for WORK FILEs (#247) @Claes65
- Don't treat CV as reserved keyword (#243) @MarkusAmshove
- Consume tab settings in WRITE statements (#242) @MarkusAmshove
- Typecheck parameter to *LENGTH (#241) @MarkusAmshove
- Parse COUNT, SUM, TOTAL, RET functions (#238) @Claes65
- Support label identifiers in form of (R1./IX) (#236) @Claes65
- Allow assignment of known attribute values to variables (#237) @MarkusAmshove
- Parse attributes of literals in WRITE (#235) @MarkusAmshove
🪲 Bugfixes
- Fix mutability checks for COMPRESS (#266) @MarkusAmshove
- Fix parens recognition in arithmetic for literal numbers (#265) @MarkusAmshove
- Allow arithmetic in THRU (#264) @MarkusAmshove
- Fix variable recognition in array dimensions (EXPAND/REDUCE/RESIZE) (#262) @MarkusAmshove