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.
- 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
csharpsyntax instead ofacl. - 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@typeannotations. - 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
- Fixed cases where hovers used
- 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.Snippetinstead ofCompletionItemKind.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)
- Diagnostic quick fixes
- Component type inference for MapObject methods
- Improved type resolution for
GetComponent()andAddComponent()methods - Component type name is now extracted from string arguments and used for accurate type inference
- Improved type resolution for
- Deprecated support
- Added support for deprecated classes, fields, methods, and constructors in class definitions
- Warning diagnostics are shown when using deprecated elements
- New build command: "Build Custom Logic Into Custom Map"
- Inserts logic into existing Custom Map file between
/// Logicand/// Weatherboundaries - Available via Ctrl + Shift + P and Ctrl + Shift + B
- Inserts logic into existing Custom Map file between
- 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
- 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)
- Built-in signatures fix
- Fixed nested generic parameters substitution in Dict class
- Fixed local variables typing inside static methods and constructors
- 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
- 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.
- Symbols provider
- Updated built-in definitions.
- Updated packages
- Added imports support
- Added build cmd
- ACL to CL ext support rename.
- Optimized parsing calls.
- Fixed autocompletion.
- Updated built-in definitions.
- Add missing LineRenderer class.
- Add missing MapObject definitions.
- Add missing Character definitions.
- Updated global classes definitions to the latest game update. (https://github.com/Jagerente/aottg2cl-vsce/pull/57/commits/125895e94b726481584efdd53f685f6e2431e4cf)
- Improved hover markdown. (by oryxoik)
- Fixed MapObject.FindMapObjectsByComponent signature. (by ninj1337)
- Add missing Quaternion fields
- Add missing Cutscene fields
- Add duplicates diagnostic
- Add annotations strict-typing
- Fixed callbacks snippets
- Fixed Input.SetKeyDefaultEnabled signature
- Extended ANTLR definition
- Updated global classes definitions to the latest game update. (https://github.com/Jagerente/aottg2cl-vsce/commit/e769039c8aafe6d5f2d5ef6c821d5dd8e8066125)
- Improved completions for Main access. Treated as static (extension) now.
- Improved local variables parsing: better typing, loop variables support.
- Fixed optional/variadic function arguments diagnostic.
- Removed unsupported tokens
[]&'(by oryxoik).
- Add component callbacks.
- Add objects default ctors.
- Fix chain auto-completion starting with '!'.
- Fix parsing error.
- Inheritance hierarchy for global classes (Human < Character < Object etc.).
breakandcontinuekeywords support.- ANTLR integration
- 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.
- Class usage
- Inheritance support
- Callbacks support using inheritance definitions
- Constructors support
- Class kind support
- Method kind support
- Extensions support
- 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
- Syntax highlighting for
.aclfiles, ensuring clear code readability. - Autocomplete support for:
- Complete global static Classes and Objects (e.g.
Game,Network,Vector3etc.):- Static fields
- Static methods
- Instance fields
- Instance methods
- User defined classes and components.
- Instance fields
- Instance methods
- Local variables
- Complete global static Classes and Objects (e.g.
- 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).