Releases: Koncord/EnScript-IDE-Extension
Releases · Koncord/EnScript-IDE-Extension
v0.9.0
Release Notes - v0.9.0
🎉 What's New
Diagnostic Suppression System
- Comment-Based Suppression: Selectively disable specific diagnostics using
// enscript-suppress[rule-id]comments - Flexible Control: Use
// enscript-suppressto suppress all rules, or specify rule IDs in square brackets like[undeclared-variable, type-mismatch] - Inline & Next-Line Support: Works both inline and for the next line of code
- Automatic Re-validation: Diagnostics automatically re-validate when configuration changes
Document Symbol Support
- Enhanced Code Navigation: Full document symbol support for browsing and jumping to classes, methods, and variables
- Position Tracking: Enhanced declaration parsing with precise position tracking
New Diagnostic Rules
- Missing Override Detection: Catches when override keyword is missing in derived classes, with distinction between method overloads and overrides
- Access Modifier Mismatch: Detects mismatched access modifiers in overridden methods
- Variable Redeclaration: Variable shadowing rule now detects redeclarations in addition to shadowing
Enhanced Type System
- Generic Type Recovery: Comprehensive generic type recovery and foreach variable type resolution
- Auto Type Inference: Full type resolution for
autovariables in foreach loops with inferred type display in hover - Typedef Resolution: Improved typedef resolution in type compatibility checks and method chaining
- For Loop Scope: Updated for loop handling to properly reflect function-level scope with support for comma-separated variable declarations
Symbol Resolution Improvements
- Modded Class Support: Enhanced class member resolution by merging definitions from modded and original classes
- Inheritance Chain: Correctly traverse inheritance chain when resolving class members
- Global Function Pointers: Support for global functions as function pointers in undeclared variable rule
- Static Cast Handling: Special handling for static Cast method calls in undeclared entity rules
Parser & Analysis Enhancements
- Constructor/Destructor Detection: Enhanced detection and error handling
- Vector Type Handling: Refined numeric type promotion logic to exclude vector types, with improved compatibility checks for vector-like string literals
- External File Diagnostics: Improved diagnostics handling for external files by checking document state
Engine Constants
- Added script module and constant types to engine constants
🔧 Fixes & Improvements
- Adjusted error reporting positions for unexpected ">" token and variable declarations
- Simplified check method parameter type in VariableShadowingRule
- Removed unused imports to satisfy ESLint rules
- Code refactoring for better maintainability
📦 Dependencies
- Bumped
@types/nodefrom 24.10.1 to 25.0.2 - Bumped
@types/vscodefrom 1.106.1 to 1.107.0 - Bumped
esbuildfrom 0.27.0 to 0.27.1 - Bumped
eslintfrom 9.39.1 to 9.39.2 - Bumped
typescript-eslintfrom 8.48.0 to 8.48.1 - Bumped
inversifyfrom 7.10.4 to 7.10.6 - Bumped
markedfrom 16.4.2 to 17.0.1
Full Changelog: v0.8.0...v0.9.0
v0.8.0
Release Notes - v0.8.0
🎉 What's New
Debug Adapter Protocol (DAP) Support
- DayZ Debug Server Integration: Implemented complete VSCode debugging integration for DayZ
- Enfusion Debug Protocol: Added messaging layer for Enfusion debug protocol communication
- Full debug adapter implementation with network buffer handling
Enhanced Type System
- Generic Type Support: Improved type resolution for generic types and out parameters
- Static Member Access: Enhanced member expression resolution to support static member access for class names
- Typedef Resolution: Added full type resolution for typedefs in member expressions
- Enum Arithmetic: Type resolution now supports arithmetic operations on enums
- Cast Method Enhancement: Improved
ClassName.Castmethod type resolution with prioritized class name checks - Function Type Compatibility: Added special case handling for function types in type mismatch checks
New Diagnostic Rules
- Variable Shadowing Detection: New rule to catch variable shadowing issues
- Incorrect Ref Modifier Usage: Detects improper use of
refmodifier in code
Symbol Resolution Improvements
- Local Scope Priority: Symbol resolution now prioritizes local scopes for better accuracy
- Modded Class Support: Enhanced inheritance chain checks and member resolution for modded classes
- Private Members: Include private members in class definition search with updated visibility handling
- Multiple Class Definitions: Properly merge all modded class definitions in member lookup
Parser Enhancements
- Thread Keyword Support: Added support for the
threadkeyword - Lenient SDK Parsing: Enabled lenient parsing for SDK files to handle minor syntax issues (e.g., missing semicolons)
Hover Information
- Inferred Type Display: Enhanced hover tooltips to show inferred types for parameters and variables
Engine Constants
- Added widget type IDs
- Added button mask constants
🔧 Fixes & Improvements
- Fixed lint issues across the codebase
- Improved error handling in logger
- Removed unused imports
- Code refactoring for better maintainability
📦 Dependencies
- Updated to latest dependency versions
- Bumped
@types/nodefrom 24.8.1 to 24.10.0 - Bumped
@eslint/jsfrom 9.38.0 to 9.39.1 - Bumped
rimraffrom 6.0.1 to 6.1.0
Full Changelog: v0.7.0...v0.8.0
v0.7.0
🎉 New Features
Type Checking & Diagnostics
-
Type Mismatch Detection: Comprehensive type checking for assignments, return statements, and function calls
- Detects type mismatches in variable assignments and function returns
- Validates function call parameter types with detailed error messages
- Supports implicit conversions (string to vector, int to bool with warnings)
- Handles bitwise operations on enums
- Supports generic type parameters in assignments
- Improved vector arithmetic operations and method call return type resolution
-
Enhanced Method Detection: Better undeclared method diagnostics
- Specific diagnostics for static method call mismatches
- Improved detection of static methods called on instances
Code Completion Improvements
- Smart function/method completion with context-aware semicolon insertion based on return types
- Enhanced completion item formatting
- Keyword Completion: Added completion items for EnScript keywords
Syntax Highlighting
- Updated syntax grammars with enhanced pattern matching for preprocessor directives
🐛 Bug Fixes
- Fixed validation for generic type parameters (#10)
- Resolved inherited method detection with proper class definition merging
- Improved type checking for inherited methods
- Allowed static method calls on instances where appropriate
🧪 Testing
- Added comprehensive diagnostic test helpers
- New unit tests for undeclared function/method rules
- Enhanced test coverage for type mismatch scenarios
🔧 Parser & Analyzer Improvements
- Enhanced error handling in ExpressionParser and Parser with detailed diagnostics
- Improved TypeResolver with better arithmetic and bitwise operation handling
- Enhanced symbol resolution utilities
Full Changelog: v0.6.1...v0.7.0
v0.6.1
v0.6.1 Release Notes
- feat: Add global SDK base declarations and enhance test setup with file loading
- fix: Improve type resolution by creating stable cache keys based on scope context
- chore: Update version from 0.6.0 to 0.6.1 in package.json
Full Changelog: v0.6.0...v0.6.1
First public release
This is a first public release
Full Changelog: https://github.com/Koncord/EnScript-IDE-Extension/commits/v0.6.0