* intern_pool: add getUnsignedInt
* add an empty struct literal
* resolve array length as usize in comptime interpreter
* use only one global intern pool
* store analysis errors in `DocumentStore.Handle`
* add typed undefined value
* add typed null value
* `gpa.deinit()` now returns an enum
* avoid double free when `--config-path` is specified
* avoid leaking memory in `Server.create` if `configChanged` returns err
LSP clients send a list of supported formats for definition and
completion; the specification says "the order describes the preferred
format of the client."[1]
My client sends:
'hover': {'contentFormat': ['plaintext', 'markdown']},
So it should prefer plaintext, using markdown if that's not supported by
the server. zls behaved slightly different: it would use Markdown if it
appears at all in the list of supported formats.
This fixes it so that it will use plain text if that appears before
'markdown' in the list.
[1]: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_hover
* move language feature files into separate folder
* move code completions into features/completions.zig
* move goto definition/declaration into features folder
* move hover into features folder
* restructure imports
* move selection range into features folder
* restructure request handling tracy call
* add missing features to `zls.zig`
* optimize document symbol generation
* match folding range index to position conversion and documentation to document symbol's
* skip function decls with no name
* skip document symbol field in opaque type
* Branching type resolution
* Add condition information to completions (borked rn i give up)
* Fix completion conditional descriptor
* Multi gotodef
* Multi hover
* Reenable references
* Fix getAllTypesWithHandles
* Fix build runner
* Add zls module, bump version
* Fix path from root issue in modules (thanks daremakemyday from Twitch :))
* Libraryify
* remove build_runner backward compatibility
* Remove some `= undefined`s in Server.zig
Makes library use less dangerous
* Consistent mem model + custom build runner possible
* Add build runner utils for third-party tooling
* Make logs removable in libraries with zls_ prefix
* Fix build runner CI
* Expose references
* Use new addModule
* InternPool: replace untyped values with typed values
* InternPool: remove `indexToTag`
* InternPool: rework representation of optional values
* add representation for unknown values and types
* ComptimeInterpreter: use InternPool typed-values
* ComptimeInterpreter: field access test
* ComptimeInterpreter: improve handling of if expressions
* InternPool: fix typeOf on a comptime float
* ComptimeInterpreter: implement TypeOf with multiple parameters
* support new module cli arguments
* capture the runtime zig version and store it on `Server`
* update build_runner action
* Use correct version for selecting arguments
- Always return a copy to avoid memory corruption (most operations assume an arena allocated copy)
- label_details were only generated for the first (pre-fix) disposable copy
- Correct use_snippets logic (send only if configured and client supports them)
* run `zig fmt`
* add support for multi object for loops
* add completion tests on multi object for loops
* update minimum zig build version
* use multi object for loops in codebase
* Update tres to latest version
* fix panics when generating document scope on invalid for loops