Skip to content

Latest commit

 

History

History
278 lines (214 loc) · 9.31 KB

File metadata and controls

278 lines (214 loc) · 9.31 KB

Change Log

All notable changes to the "aottg2cl" extension will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.2.0] - 2026-01-04

Added

  • Rename Symbol support (F2)
    • Support renaming variables, parameters, methods, fields, and classes
    • Automatic reference updates across the document
    • Note: References in annotations (@type, @param, @return) are not currently supported
  • Go to Definition (F12) and Go to References (Alt+Shift+F12)
    • Support for variables, parameters, methods, fields, and classes
    • Navigate to symbol definitions and find all usages
    • Note: References in annotations (@type, @param, @return) are not currently supported
  • Debugger support.
  • Auto-generated docs integration (generated from game source).
  • Arithmetic operators: added modulo (%).
  • Hover improvements
    • Fixed cases where hovers used csharp syntax instead of acl.
    • Improved readability and increased the amount of useful info.
    • Added method parameters and fields description into hovers.
    • Extract and display descriptions from @param, @return, and @type annotations.
    • Handle hover for self.field/self.method() when cursor is on 'self'.
    • Detect constructors hover and show constructor based on provided arguments count.
    • Annotations hover
  • Autocomplete and hover improvements
    • Detect comments and strings to prevent autocomplete and hover suggestions in invalid contexts.
    • Improved suggestion context detection for better accuracy.
    • Suggest builtin callback snippets as CompletionItemKind.Snippet instead of CompletionItemKind.Function.
  • Callbacks support
  • UX & performance improvements
    • Added cache keyed by document version/hash to reduce CPU/RAM usage by avoiding excessive parsing.
    • Improved behavior on focus changes and when switching files.
    • Added indexing for user-defined entities, classes, methods, strings, and comments for faster reference building and reduced memory allocations.
    • Optimized chain resolution.
    • Providers decomposition with wait-until-parsed.
  • Syntax highlighting improvements
    • Extended syntax detection.
    • Better overall highlighting quality.
  • User-defined classes override built-ins (aligned with in-game behavior)
    • Duplicate class names are errors (only when multiple user classes share the same name).
    • Name collision with a built-in class is a warning.
    • Completions and hovers follow the same resolution rules.
  • Fixed multiline comments
  • Added multiline annotations support
  • Code action providers system
    • Diagnostic quick fixes
      • Missing 'self.': Quick fix adds 'self.' prefix when accessing instance fields or methods without it
      • Missing Cutscene.Start() method: Quick fix adds missing coroutine Start() method for cutscene classes
    • Formatting quick fixes
      • Format class braces: Quick fix to format class/cutscene/component/extension declarations to Allman style (braces on new lines)
      • Format method braces: Quick fix to format instance methods, static methods, and constructors to Allman style (braces on new lines)
  • Component type inference for MapObject methods
    • Improved type resolution for GetComponent() and AddComponent() methods
    • Component type name is now extracted from string arguments and used for accurate type inference
  • Deprecated support
    • Added support for deprecated classes, fields, methods, and constructors in class definitions
    • Warning diagnostics are shown when using deprecated elements

[0.1.4] - 2025-07-18

Added

  • New build command: "Build Custom Logic Into Custom Map"
    • Inserts logic into existing Custom Map file between /// Logic and /// Weather boundaries
    • Available via Ctrl + Shift + P and Ctrl + Shift + B
  • Completion settings:
    • New setting to disable automatic parameter completion in method calls and constructors
  • README.md documentation update
    • Enhanced annotation examples with generic types (List, Dict<K,V>)
    • Added modular imports documentation with complete examples
    • Added commands documentation

[0.1.3] - 2025-06-20

Added

  • Base Formatting (PREVIEW)
    • Can be disabled in settings
  • Build CMD enhancements
    • Build hotkey / action support (Ctrl + Shift + B)
    • Remember last path / name (Can be configured in settings)

Changed

  • Built-in signatures fix

[0.1.2] - 2025-05-30

Changed

  • Fixed nested generic parameters substitution in Dict class

[0.1.1] - 2025-05-29

Changed

  • Fixed local variables typing inside static methods and constructors

[0.1.0] - 2025-05-27

Added

  • Local variables parsing using ANTLR parsing manager.
  • Diagnostic error report on usage of undeclared classes or variables.
  • Builtin generics types support (List, Dict) for better typing
  • Typing support for variables inside loop definitions

Changed

  • Fixed Annotation typed constructors shown as default.
  • Removed default callbacks suggestion for user-defined classes.
  • Improved autocompletion behaviour.
  • Typing is much better now.
  • More diagnostic error cases.

[0.0.9-preview] - 2025-05-23

Added

  • Symbols provider

Changed

  • Updated built-in definitions.
  • Updated packages

[0.0.8-preview] - 2025-02-28

Added

  • Added imports support
  • Added build cmd

Changed

  • ACL to CL ext support rename.
  • Optimized parsing calls.
  • Fixed autocompletion.
  • Updated built-in definitions.

[0.0.7-preview] - 2024-12-23

Added

  • Add missing LineRenderer class.
  • Add missing MapObject definitions.
  • Add missing Character definitions.

Changed

[0.0.6-preview] - 2024-11-30

Added

  • Add missing Quaternion fields
  • Add missing Cutscene fields
  • Add duplicates diagnostic
  • Add annotations strict-typing

Changed

  • Fixed callbacks snippets
  • Fixed Input.SetKeyDefaultEnabled signature
  • Extended ANTLR definition

[0.0.5-preview] - 2024-11-01

Changed

[0.0.4-preview] - 2024-10-22

Added

  • Add component callbacks.
  • Add objects default ctors.

Changed

  • Fix chain auto-completion starting with '!'.
  • Fix parsing error.

[0.0.3-preview] - 2024-10-18

Added

  • Inheritance hierarchy for global classes (Human < Character < Object etc.).
  • break and continue keywords support.
  • ANTLR integration

Changed

  • Extended cutscenes support:
    • Snippet
    • Better context auto-completions
    • Definition and usage error validation
  • Extended loops and conditions support
    • Snippet
    • Better context auto-completions
  • Extended callbacks support:
    • Improved snippet on callback declaring.
    • Improved callbacks hints information.
  • Extended variables parsing:
    • Improved parsing
    • Added current method arguments as variables support
  • Improved class, methods and calls parsing.
  • Improved code navigation utils.
  • New code diagnostics:
    • Class usage
      • Wrong self casting
      • Wrong static usage
      • Wrong instance usage
      • Wrong ctor calling
      • Wrong methods usage
      • Multiple class ctors definitions
      • Incomplete cutscene class definition
    • ANTLR parser provided
      • Brackets, semicolons, wrong positioning and much more.

[0.0.2-preview] - 2024-10-09

Added

  • Inheritance support
  • Callbacks support using inheritance definitions
  • Constructors support
  • Class kind support
  • Method kind support
  • Extensions support

Changed

  • Improved autocomplete features based on new class definitions
  • Updated global classes definitions
  • Updated user-defined classes parsing
  • Range detection as class, not keyword
  • Constructors auto-complete

[0.0.1-preview] - 2024-10-04

Added

  • Syntax highlighting for .acl files, ensuring clear code readability.
  • Autocomplete support for:
    • Complete global static Classes and Objects (e.g. Game, Network, Vector3 etc.):
      • Static fields
      • Static methods
      • Instance fields
      • Instance methods
    • User defined classes and components.
      • Instance fields
      • Instance methods
      • Local variables
  • Signature help for methods, providing parameter hints as you type.
  • Hover tooltips for quick reference, showing descriptions for class methods, fields, and keywords.
  • Basic snippets to streamline coding with common constructs.
  • Error validation mechanisms, including:
    • Mismatched brackets
    • Missing semicolons
    • Incomplete member access
    • Incorrect class usage
    • Incorrect number of arguments for method
  • Context-aware completions for static, instance, private, public members based on usage context.
  • Deep member access for nested properties and methods (e.g., Network.MyPlayer.Character.Position.X).