Skip to content

Releases: Koncord/EnScript-IDE-Extension

v0.9.0

19 Dec 15:29

Choose a tag to compare

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-suppress to 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 auto variables 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/node from 24.10.1 to 25.0.2
  • Bumped @types/vscode from 1.106.1 to 1.107.0
  • Bumped esbuild from 0.27.0 to 0.27.1
  • Bumped eslint from 9.39.1 to 9.39.2
  • Bumped typescript-eslint from 8.48.0 to 8.48.1
  • Bumped inversify from 7.10.4 to 7.10.6
  • Bumped marked from 16.4.2 to 17.0.1

Full Changelog: v0.8.0...v0.9.0

v0.8.0

01 Dec 22:32

Choose a tag to compare

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.Cast method 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 ref modifier 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 thread keyword
  • 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/node from 24.8.1 to 24.10.0
  • Bumped @eslint/js from 9.38.0 to 9.39.1
  • Bumped rimraf from 6.0.1 to 6.1.0

Full Changelog: v0.7.0...v0.8.0

v0.7.0

03 Nov 14:13
ce6cf2c

Choose a tag to compare

🎉 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

27 Oct 14:58
167e59d

Choose a tag to compare

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

26 Oct 22:01
ad2956a

Choose a tag to compare