Commit Graph

1180 Commits

Author SHA1 Message Date
Lee Cannon
fe4c9d5a8b
Merge pull request #1122 from arp242/prefer-text
Use plain text if the client tells zls it's preferred
2023-04-13 13:13:15 +01:00
Ali Chraghi
42d582c0a2 Update configuration.zig 2023-04-13 09:58:42 +01:00
Martin Tournoij
622efdcd6a
Use plain text if the client tells zls it's preferred
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
2023-04-13 07:33:43 +02:00
Techatrix
d2287816a7 disable assertions in smallestEnclosingSubrange 2023-04-12 23:44:39 +01:00
nullptrdevs
735f884394 Nested struct init fields completion 2023-04-05 10:57:06 -07:00
nullptrdevs
55b1aeb6f7
Avoid accessing inactive union fields in completeDot (#1115)
As reported on Discord by CodotakuYT:
```zig
fn populate(T: type, index: i32) T {
    _ = index;
    @typeInfo(T).struct.
}
```
```
thread 17384 panic: access of union field 'ast_node' while field 'param_payload' is active
C:\Users\taoua\zls\src\features\completions.zig:875:61: 0x7ff68070caac in completeDot (zls.exe.obj)
                const node_data = nodes_data[local_decl.decl.ast_node];
```
2023-04-05 10:28:21 -04:00
Auguste Rame
7814a05921
Remove format lt 512 diff restriction (#1109) 2023-04-04 16:23:44 -04:00
Auguste Rame
ace6d7f32b
Remove outdated diagnostics check (#1106) 2023-04-03 13:42:22 -04:00
Auguste Rame
471d971d1d
Merge pull request #1000 from Techatrix/stage2-zir
Embed AstGen into ZLS
2023-04-01 23:08:40 -04:00
Auguste Rame
99af009232
Disable build file config runs for WASI (#1102) 2023-04-01 23:07:38 -04:00
Techarix
018569888f explain how AstGen will diverge from zig codebase 2023-04-01 23:03:51 +02:00
Techarix
4215edbc33 add support for running ast-check without zig 2023-04-01 23:03:51 +02:00
Techarix
c06cf6e95c add zig code for generating Zir 2023-04-01 22:44:56 +02:00
Auguste Rame
8b5c649805
Add anytype resolution based on call references (#1067) 2023-03-31 11:54:46 -04:00
Auguste Rame
c217502670
Make Analyser use its own arena (#1101) 2023-03-29 14:36:32 -04:00
Techatrix
9a7d262e6c only include snippet completions when enable_snippet is set 2023-03-26 16:20:15 +01:00
Techatrix
90b468ac9f update snippet data 2023-03-26 16:20:15 +01:00
Techatrix
29037f2f05 disable .fixall autofix mode 2023-03-26 16:19:38 +01:00
Techatrix
283ca0006d Apply suggestions from code review
Co-authored-by: Lee Cannon <leecannon@leecannon.xyz>
2023-03-26 16:19:00 +01:00
Techatrix
4b042a562a exclude default cimport declarations from completions 2023-03-26 16:19:00 +01:00
Lee Cannon
f24fcc2b1e
disable cimport resolution (#1091) 2023-03-23 13:28:42 -04:00
Techatrix
1e733a8782 fix block label completion test 2023-03-23 15:13:33 +00:00
Techatrix
84228a612e improve source location of block scope with invalid ast 2023-03-23 15:13:33 +00:00
Techatrix
7e652a5527 refactor document scope creation to be more aware of block expressions 2023-03-23 15:13:33 +00:00
Techatrix
53c7e5bed7 remove TODO's about redefinition errors i favor of ast-check 2023-03-23 15:13:33 +00:00
Techatrix
419527a40d update handling of some node tags in makeScopeInternal 2023-03-23 15:13:33 +00:00
Techatrix
775c38f5f5 implement document scope creation for array_type_sentinel 2023-03-23 15:13:33 +00:00
Techatrix
72228e2b41 fix printDocumentScope 2023-03-23 15:13:33 +00:00
Veikka Tuominen
61b42ca63a make semantic token configuration an enum 2023-03-23 15:02:12 +00:00
nullptrdevs
e1d90a1a1b More . completion 2023-03-23 15:01:23 +00:00
nullptrdevs
9723a92508 Struct init fields completion. 2023-03-21 17:46:33 +00:00
Lee Cannon
a9295769e7
hack latest build changes (#1077) 2023-03-18 20:50:26 -04:00
Techatrix
4b034f1afb
Rework file structure (#1069)
* 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`
2023-03-17 23:01:41 +01:00
Auguste Rame
3586a7858e
Fix scope creation for label blocks (#1074) 2023-03-17 15:02:51 -04:00
Techatrix
0aacb76743
support enums in config_gen (#1072)
* support enum types in config_gen

* fix typo
2023-03-17 02:27:35 -04:00
Techatrix
12014cd93d fix typos 2023-03-15 17:34:23 +01:00
Lee Cannon
985e7069a2
tracy: workaround zig bug (#1066) 2023-03-15 11:59:56 -04:00
Techatrix
c2d15bfc9a only return block scopes from innermostBlockScope 2023-03-14 15:16:30 +00:00
Techatrix
487281f8e2 improve variable lookup performance 2023-03-14 15:16:30 +00:00
Techatrix
f5897569c4 do not store Handle pointer in Analyser 2023-03-14 15:16:30 +00:00
Techatrix
9d7012596a replace unnecessary std.ArrayListUnmanaged in document scope 2023-03-14 15:16:30 +00:00
Techatrix
ea02e4364f remove had_root global 2023-03-14 15:16:30 +00:00
Techatrix
0ff0a193cc simplify analysis by introducing a Analysis Struct 2023-03-14 15:16:30 +00:00
Techatrix
865e5efe8b refactor semantic tokens 2023-03-14 14:56:11 +00:00
Techatrix
bbc082d102 update config gen to work with vscode-zig 2023-03-14 14:27:18 +00:00
Techatrix
dc7efa591c resolve relative include directories 2023-03-14 14:25:13 +00:00
Auguste Rame
ef4a0607fb
Add some more basic overflow checks (#1055) 2023-03-12 01:53:05 -05:00
Techatrix
a959f161e9
find references on test decl with identifier name (#1051) 2023-03-12 01:24:54 -05:00
Techatrix
ab23ff3616
Optimize document symbols (#1050)
* 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
2023-03-12 01:24:42 -05:00
Techatrix
c203110555
more tracy calls (#1052) 2023-03-11 13:43:14 -05:00
Techatrix
ff467f9878
InternPool: add more helper functions and debug formatting (#1043) 2023-03-11 12:37:06 -05:00
Techatrix
333fcb5633
minor semantic token fixes (#1044)
* improve analysis and highlighting of error sets

* emit semantic token for unresolved identifiers

* minor semantic token fixes
2023-03-11 12:36:48 -05:00
Techatrix
3c26892c7e
limit maximum detail length at 1024 bytes (#1048) 2023-03-10 20:06:17 -05:00
Techatrix
ed91fd3823 fix leak in openDocument 2023-03-08 21:52:26 +01:00
Techatrix
d5ac6b9734 rework nodesAtLoc 2023-03-07 09:38:18 -08:00
Techatrix
7a7928f466 fix locIntersect 2023-03-07 09:38:18 -08:00
Techatrix
0ee947e8a6 add Ast to callback field in iterateChildren 2023-03-07 09:38:18 -08:00
Techatrix
0f3319315f implement textDocument/semanticTokens/range 2023-03-07 09:29:39 -08:00
Techatrix
ce9ae21cf4 fix lastToken on tagged union with invalid members 2023-03-07 09:21:46 -08:00
Auguste Rame
2ce59a3bc3
Branching type resolution (#1031)
* 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
2023-03-07 12:17:45 -05:00
Techatrix
8e6609e0f5 skip failed cimports on garbage collection 2023-03-07 12:28:20 +01:00
Techatrix
421a05ae5f
send response on shutdown request (#1037) 2023-03-06 13:34:09 -05:00
Techatrix
bb1b1dd102 update version data 2023-03-06 09:32:03 -08:00
dec05eba
76ee4b80fd
Fix crash if zls.json is empty (#1034)
Fixes #1033
2023-03-05 14:09:39 -05:00
Auguste Rame
121f68b970
Fix build runner (#1029)
* 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
2023-03-05 14:08:31 -05:00
Meghan
a78950ce82
update zig submodules to new builtin dependency system (#1017)
* build.zig: collapse exe_options

* build.zig: convert zig submodules to new dependency system

* update minimum version so that package manager hashes work cross-platform
2023-03-03 01:26:15 -05:00
Techatrix
30869d7d87
InternPool: replace untyped values with typed values (#1023)
* 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
2023-02-27 17:53:46 -05:00
Techatrix
89ab9fdf70
make diff.edits memory safe (#1026) 2023-02-27 17:53:16 -05:00
Auguste Rame
ed908a2511
Rerun build.zig configuration extraction on zig_exe_path change (#1027) 2023-02-27 17:52:05 -05:00
Techarix
4b0da6f6ae fix folding range on multi line function declaration 2023-02-25 10:58:29 -08:00
Techarix
97f7fd77c6 fix folding range on structs with doc comment on first field 2023-02-25 10:58:29 -08:00
Lee Cannon
5ede46f003
support new module cli arguments (#1019)
* 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
2023-02-23 15:18:52 -05:00
Techatrix
9cb569a196
update version data (#1021) 2023-02-23 00:03:10 +00:00
nullptrdevs
424a06b7ee
completeBuiltin fixes (#1015)
- 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)
2023-02-22 16:30:21 +00:00
Techatrix
36738501cf
ignore an unknown CodeActionKind (#1001) 2023-02-21 22:27:47 +00:00
Techatrix
0f77fd5b0e
add multi object for loop support (#1011)
* 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
2023-02-21 17:11:35 -05:00
Lee Cannon
8bd5358748
build_runner: provide valid global cache to the build runner (#1009) 2023-02-17 15:26:03 -05:00
Auguste Rame
c3f58538e8
Merge pull request #793 from Techatrix/intern-pool
ComptimeInterpreter: Intern Pool
2023-02-15 14:46:58 -05:00
Lee Cannon
abe07e601e
Fix build runner for latest changes (#1005)
* build_runner: update to use new caching system

* build_runner: switch ci to use 0.10.1 instead of 0.10.0

* build_runner: support older versions

* build_runner: ensure depreciated functions and types are handled when they are removed

* build_runner: prevent access denied on global cache
2023-02-15 13:36:06 -05:00
Techatrix
4f42c68a0a
improve error message when parsing zls.json (#1002) 2023-02-15 13:34:52 -05:00
nullptrdevs
dedb9deb08
Fix handling of invalid tokens in getPositionContext (#1006) 2023-02-15 13:33:58 -05:00
Techarix
2dffa9ef25 Merge branch 'master' into intern-pool 2023-02-14 23:48:57 +01:00
nullptrdevs
290ed6e7e7
Avoid integer overflow in analysis.getPositionContext (#998) 2023-02-13 20:09:36 -05:00
nullptrdevs
b28d3aadd7
Configuration handling fixes (#995)
* Fortify `server.handleConfiguration`.
* Move call to `server.registerCapability` within `server.initializedHandler`(was being sent prematurely).
2023-02-13 17:59:06 -05:00
nullptrdevs
409c203317
Amend getPositionContext to handle incomplete .string_literals, ie ", @" (#997) 2023-02-13 17:47:57 -05:00
Auguste Rame
7919da5054
Bump diffz to fix overflow issue on long files (#993) 2023-02-11 17:30:55 -05:00
Techatrix
37ca1333ed
implement cInclude completions & goto definition (#970)
* implement cInclude completions & goto definition

* fix cImport features on windows

* fix relative path with `..`
2023-02-11 20:25:55 +00:00
Techatrix
99b5fd4f69 small refactor 2023-02-11 20:45:51 +01:00
Techatrix
654913ae47 implement coerceInMemoryAllowedErrorSets 2023-02-11 20:37:26 +01:00
Auguste Rame
bf19ed3ea9
Switch to Diff Match Patch (diffz) (#982)
* Add tests, note about correctness issue

* Use diffz (DiffMatchPatch)
2023-02-11 14:21:10 -05:00
Alex Kladov
73d6264cab
Fix missing nodes in outline (#990)
* Remove some boilerplate from test

* Fix missing nodes in outline
2023-02-11 14:20:01 -05:00
Alex Kladov
0d3b0e9965
Remove some boilerplate from test (#988) 2023-02-11 14:19:37 -05:00
Techatrix
5754f362c6 Merge branch 'master' into intern-pool 2023-02-11 00:41:29 +01:00
Techatrix
6d387bca11 improve comptime interpreter dot completions 2023-02-11 00:34:30 +01:00
Techatrix
5cb0c98db1 fix function call resolution 2023-02-11 00:04:08 +01:00
Techatrix
3fda3b5414 remove some InternPool test boilerplate 2023-02-10 22:57:46 +01:00
Techatrix
09c35b8eaa update onePossibleValue for arrays 2023-02-10 22:44:26 +01:00
Techatrix
83f33f1c16 implement intInfo for enums 2023-02-10 19:39:21 +01:00
Techatrix
d98060b3d6 more closely match Zir.Inst.Ref to InternPool.Index 2023-02-10 19:10:58 +01:00
Techarix
57fc10eec0 add predefined values to Index 2023-02-08 21:01:15 +01:00