- Fixed generic events not being included (see #411).
- Fixed missing IntelliSense for some invalid syntax (see #406).
- Fixed static expressions not being evaluated (see #412).
- Fixed a bug when parsing arguments of macros (see #413).
- Fixed some unhandled panics.
- Added a setting to set the maximum amount of projects during cache priming, reducing RAM usage for larger workspaces.
- Fixed some panics.
- Added an incremental database using the Salsa incremental computation framework.
- Made the preprocessor incremental.
- Added a lot of unit tests.
- Made all the request handlers UnwindSafe to reduce the amount of crashes.
- Fixed incorrect includes completion (see #332 for more details).
- Fixed infinite loops when resolving circular imports (see #342 for more details).
- Fixed macro parsing errors (see #313 and #340).
- Fixed a deadlock issue (see #327 for more details).
- Fixed an include resolution breakage for
<>
type includes.
- Fixed includes not being resolved.
- Added automatic mainPath detection. The mainPath setting does not exist anymore!
- Added support for Apple Silicon.
- Switched to a path interner for better performance when resolving references (no longer using URIs).
- Added better progress report.
- Added signatures and documentation for typedef, typeset and callback snippet completions (see #324).
- Fixed nested relative include paths not being resolved by the linter (see #311).
- Fixed GoToDefinition on includes only highlighting partial words (see #323).
- Added fuller backtrace and more logs.
- Fixed some crashes (see #315, #316, #317, #318).
- Fixed dependencies versions.
- Fixed end of file defines from exiting the preprocessor too early when expanded (see #312).
- Fixed line comments being in the wrong order.
- Added performance information in the logs.
- Fixed a major performance issue.
- Fixed tree-sitter bugs.
- Fixed
sourcemod.inc
not being included automatically.
- Removed deprecated diagnostics in
.inc
files.
- Added support for arguments overflow in preprocessor macros.
- Added #undef support in preprocessor.
- Added semantic resolution for macros.
- Added a debug request to get the preprocessed text for a document.
- Fixed disable syntax linter not being respected.
- Added support for stringizing in preprocessor.
- Fixed "receiving on an empty or disconnected channel" bug when stopping the server.
- Fixed a crash when loading files that were not yet saved to disk (see #31).
- Fixed resolving references for too many files (this can improve parsing times by 300%).
- Improved method resolution to use the AST instead of primitive text parsing.
- Removed dangerous unwraps.
- Fixed out of range error when doing semantic analysis.
- Removed dangerous unwraps.
- Fixed reading files if they are not sourcepawn files.
- Fixed huge performance dropoffs when iterating through
.git
folders. - Fixed incorrect error handling.
- Added more debugging traces.
- Fixed Sentry hostname data leak.
- Fixed early returns in parser when encountering an error.
- Fixed Sentry instantiation.
- Fixed BOM support.
- Fixed disabled code diagnostics being skipped by the preprocessor.
- Added optional crash reports telemetry.
- Fixed support for
#tryinclude
. - Fixed incorrect macro offsetting.
- Fixed unknown tokens failing the preprocessor.
- Fixed incorrect arguments indexing in macro expansion.
- Fixed infinite recursion when resolving includes.
- Removed anyhow errors from logs.
- Allow non define identifiers in macro expansions.
- Fixed trailing macro comment expansion issue.
- Fixed empty preprocessed text on preprocessing failure.
- Fixed default completions in includes completions.
- Fixed early aggressive propagation in providers.
- Fixed some potential unwraps.
- Added full preprocessor support. The extension will now preprocess the files, by expanding macros and evaluating if conditions.
- Added basic logging and tracing.
- Fixed descriptions not appearing on hover.
- Added better error reporting to the client.
- Fixed a crash when parsing spcomp's output.
- Fixed the server dying too easily.
- Fixed a crash when the mainPath setting was empty.
- Added a setting to disable the syntax linter.
- Added support for mainPaths relative to the workspace's root.
- Updated the parser to take into account new syntax elements.
- Added support for AMXXPawn.
- Added call hierarchy provider.
- Added support for linter arguments.
- Added deprecated lint.
- Added invalid syntax lint.
- Added inline comments support for variables, enum members and defines.
- Added default completions (
sizeof
,voids
, etc).
- Added rename provider.
- Fixed incorrect heuristic when inferring the mainPath (Thanks Suza!).
- Fixed spcomp linting on macOS and Linux.
- Fixed incorrect completion triggers.
- Fixed unresolved variables in methods.
- Fixed missing completions in methods.
- Added spcomp status report.
- Added automatic mainpath detection when missing.
- Fixed diagnostics not disappearing.
- Added a linter provider.
- Added constructor completion when using the
new
keyword. - Added a document completion provider (type
/*
above a function/method declaration).
- Fixed constructors appearing in method completions.
- Fixed constructors being identified as methodmaps references.
- Added support for adding/deleting/editing documents outside of the editor (see #13).
- Added support for refreshing semantic analysis outside of the edited file (see #12).
- Added status notifications.
- Added support for folder rename in includesDirectories.
- Added
typedef
andtypeset
support. - Added callback completions.
- Added file rename/deletion support in includesDirectories.
- Added notifications when a setting is invalid.
- Fixed changes in IncludesDirectories not being detected.
- Fixed some references not being resolved on the initial parse.
- Added Document Symbol provider.
- Added Reference provider.
- Fixed invalid file reads when the file contains invalid UTF-8 characters.
- Fixed panic when opening a file without opening its parent folder first.
- Added SignatureHelp provider.
- Fixed a potential panic when reading an invalid file.
- Added Hover, GoToDefinition, and Semantic Highlighting.
- Added support for function completions.