|
2 | 2 |
|
3 | 3 | All notable changes to the ISL Language Support extension will be documented in this file. |
4 | 4 |
|
5 | | -## [1.0.0] - 2024-11-21 |
| 5 | +## [1.0.0] - 2025-11-26 |
| 6 | + |
| 7 | +### Added |
| 8 | +- **Signature Help**: Parameter hints for functions and modifiers |
| 9 | +- **Inlay Hints**: Type annotations displayed inline for variables |
| 10 | +- **Code Actions & Quick Fixes**: |
| 11 | + - Simplify unnecessary string interpolation braces (`${$var}` → `$var`) |
| 12 | + - Convert `default()` modifier to null coalescing operator (`??`) |
| 13 | + - Format long single-line objects onto multiple lines |
| 14 | + - Change colon (`:`) to equals (`=`) for variable assignments |
| 15 | + - "Fix all in file" option for colon-to-equals conversions |
| 16 | +- **Enhanced Snippets**: 20+ new snippets for common ISL patterns including: |
| 17 | + - Safe navigation and error handling |
| 18 | + - Array and object transformations |
| 19 | + - Conditional field patterns |
| 20 | + - Date operations |
| 21 | + - Batch processing patterns |
| 22 | +- **CodeLens Enhancements**: |
| 23 | + - "Test Function" action for quick testing |
| 24 | + - "Find Usages" for tracking function references |
| 25 | +- **Status Bar Enhancements**: Active file indicator and quick actions |
| 26 | + |
| 27 | +### Improved |
| 28 | + |
| 29 | +#### Syntax Highlighting |
| 30 | +- Fixed division operator (`/`) being incorrectly highlighted as regex |
| 31 | +- Removed regex literal pattern (ISL uses regex as string arguments) |
| 32 | +- Improved modifier highlighting with consistent coloring for namespaced modifiers |
| 33 | +- Enhanced pipe operator (`|`) visibility with distinct color |
| 34 | +- Better number literal highlighting |
| 35 | + |
| 36 | +#### Code Completion |
| 37 | +- Fixed variable autocompletion preserving `$` prefix when completing |
| 38 | +- Improved context-aware suggestions |
| 39 | + |
| 40 | +#### Formatter |
| 41 | +- **Pipe Spacing**: Automatically adds space after pipe operator (`|trim` → `| trim`) |
| 42 | +- **Function/Modifier Parameters**: Consistent spacing in declarations |
| 43 | + - With parameters: `fun name( $param1, $param2 )` |
| 44 | + - Without parameters: `fun name()` |
| 45 | +- **Control Flow Parameters**: Consistent spacing for `if`, `switch`, `while`, `foreach` |
| 46 | + - Example: `if ( $condition )`, `switch ( $value )` |
| 47 | +- **Nested Control Flow**: Proper indentation for nested structures, including: |
| 48 | + - Nested switch statements in switch cases (`"A" -> switch($x) ... endswitch;`) |
| 49 | + - Control flow after arrow operator (`->`) |
| 50 | +- **Switch Statement Objects**: Fixed indentation for object values in switch cases |
| 51 | + - Properly handles `};` in case values without closing the switch |
| 52 | +- **Modifier Chain Indentation**: Multi-line modifier chains are now indented |
| 53 | +- **Multi-line String Preservation**: Backtick strings preserve original formatting and indentation |
| 54 | +- Removed automatic splitting of long modifier chains (user controls line breaks) |
| 55 | + |
| 56 | +#### Validator |
| 57 | +- **Semantic Validation**: |
| 58 | + - Undefined function detection |
| 59 | + - Undefined modifier detection (including `push`, `getProperty`, `setProperty`) |
| 60 | + - Undeclared variable usage detection |
| 61 | + - Smart variable declaration tracking (supports both `=` and `:` operators) |
| 62 | +- **Improved Control Flow Balance**: |
| 63 | + - Fixed `endfor`/`foreach` matching in expression contexts |
| 64 | + - Fixed `endswitch`/`switch` matching for nested switches |
| 65 | + - Fixed `endif`/`if` detection in complex conditions |
| 66 | + - Recognizes control flow after arrow operator (`->`) in switch cases |
| 67 | + - Better handling of inline vs. block control flow statements |
| 68 | +- **Return Statement Validation**: Completely rewritten to accurately track function scope with proper brace depth tracking |
| 69 | +- **Comment Handling**: All validations now correctly ignore code in comments |
| 70 | +- **Assignment Operators**: Recognizes both `=` and `:` for variable declarations |
| 71 | +- **Information-Level Diagnostics** (blue squiggly): |
| 72 | + - Long object declarations suggesting formatting |
| 73 | + - Colon usage suggesting equals for consistency |
| 74 | + - Unnecessary string interpolation braces |
| 75 | + |
| 76 | +#### Spell Checking |
| 77 | +- Added ISL-specific keywords to cSpell dictionary: |
| 78 | + - Control flow: `endfor`, `endswitch`, `endif`, `endwhile` |
| 79 | + - Modifiers: `upperCase`, `toLowerCase`, `pushItems`, `getProperty`, `setProperty` |
| 80 | + - VSCode extension terms: `inlayhints`, `codelens`, `quickfix` |
| 81 | + - Common concatenated forms |
| 82 | + |
| 83 | +### Fixed |
| 84 | +- Division operator no longer highlighted as regex in expressions |
| 85 | +- Variable completion maintains `$` prefix |
| 86 | +- Object formatting no longer cuts string interpolations |
| 87 | +- Math expressions no longer misidentified as objects in type hints |
| 88 | +- Variables in comments no longer trigger "undeclared variable" warnings |
| 89 | +- Control flow balance correctly handles all nesting scenarios |
| 90 | +- Return statement validation accurate in complex nested functions |
| 91 | +- Function/modifier parameter spacing consistent after formatting |
| 92 | +- Nested switch statement indentation correct |
| 93 | +- Switch case object values maintain proper indentation |
| 94 | +- Multi-line backtick strings preserve internal formatting |
| 95 | + |
| 96 | +### Configuration |
| 97 | +- Removed `isl.formatting.formatModifierChains` (automatic chain splitting removed) |
| 98 | +- Kept `isl.formatting.alignProperties` for object property alignment |
| 99 | + |
| 100 | +## [1.0.0-Beta] |
6 | 101 |
|
7 | 102 | ### Added |
8 | 103 | - Initial release |
@@ -86,15 +181,11 @@ All notable changes to the ISL Language Support extension will be documented in |
86 | 181 | - Symbol provider for outline view |
87 | 182 | - Reference finder |
88 | 183 | - Rename symbol support |
89 | | -- Code actions and quick fixes |
90 | | -- Refactoring support |
91 | 184 | - Debug adapter protocol support |
92 | 185 | - Test runner integration |
93 | 186 | - Performance optimizations |
94 | 187 | - Multi-file validation |
95 | 188 | - Import resolution and auto-import |
96 | 189 | - Type checking based on type declarations |
97 | | -- More sophisticated code formatting |
98 | 190 | - Bracket pair colorization |
99 | | -- Inlay hints for inferred types |
100 | 191 |
|
0 commit comments