Commit Graph

334 Commits

Author SHA1 Message Date
Alexandros Naskos
06518778c1
Removed comment preprocessing code from the semantic tokens gap highlighter,
Fixed various comment semantic highlighting issues.
Refactored some minor parts of the analysis code.
2021-03-26 21:04:51 +02:00
Alexandros Naskos
55ad1028fc
Fixed crash in analysis of variable declaration aliases 2021-03-21 02:31:32 +02:00
Luuk de Gram
472033a845
Improve token location stability 2021-03-13 12:22:19 +01:00
Luuk de Gram
0d85668ce4
Do not offer completion for function labels 2021-03-12 11:56:51 +01:00
Luuk de Gram
7a2cd418a8
Scope fixes + semantic token colors:
- Creates a scope for errdefer and adds the payload as a declaration
  (Previously lhs was a token index meaning we had an out of bounds error due too high of an integer)
- Semantic highlighting corrected for error payloads in loops/ifs and errdefers
2021-03-11 20:45:05 +01:00
Luuk de Gram
ef1b3c95f1
Completion fixes:
- Fixes namespace completions. Uses pointers instead of indices to ensure they are unique
- Adds .ptr completion to slices and `*` to many pointer
2021-03-11 13:59:09 +01:00
Luuk de Gram
094b31be48
Fix namespaces in containers 2021-03-10 17:04:14 +01:00
Luuk de Gram
85937d48ca
Semantic token + scope fixes:
- Highlights pipes of loops/elses payloads correctly
- New ast structure counts last token as the variable itself and not the '}' so change scope checking to '<=' instead of '<'
2021-03-10 10:02:07 +01:00
Luuk de Gram
3ac6c82b9a
Completion for index label in for loops and fix for function snippets 2021-03-09 19:53:59 +01:00
Luuk de Gram
858f3cb282
Completion of unions in switches and its tags 2021-03-09 12:35:56 +01:00
Luuk de Gram
20cb0b7307
Fix off by one scope end index 2021-03-08 20:31:02 +01:00
Luuk de Gram
43ebfc7300
Work on completion for unwrapped slices/optionals in loops/ifs 2021-03-08 19:46:23 +01:00
Luuk de Gram
fd6b94bcc9
Fixes multiple small bugs:
- Correct completion based on scope
 - Semantic tokens for while/if/else/for keywords
 - Fix crash on import path
2021-03-07 21:54:54 +01:00
Luuk de Gram
53c37765c0
Fix inferred error set return types 2021-03-07 18:45:37 +01:00
Luuk de Gram
e2f4bbf2f3
Implement semantic tokens for regular comments 2021-03-07 14:51:47 +01:00
Luuk de Gram
ac8a00342e
All functionalities implemented. Also implemented ability to skip searching for references through std 2021-03-06 20:55:59 +01:00
Luuk de Gram
3d8a9732fc
Calculate correct token locations and ensure all semantic highlighting matches 2021-03-05 22:38:42 +01:00
Luuk de Gram
acc45b4efe
Use the correct tree to display semantic tokens 2021-03-04 22:53:54 +01:00
Luuk de Gram
9224bbd4dc
Implement all of the semantic tokens 2021-03-04 22:30:25 +01:00
Luuk de Gram
08075a1261
Start fixing semantic tokens 2021-03-04 16:14:30 +01:00
Luuk de Gram
a80e9b262e
Implement usingnamespace and fix function snippets 2021-03-04 13:26:11 +01:00
Luuk de Gram
7495aab28b
Start implementing usingnamespace 2021-03-03 21:02:31 +01:00
Luuk de Gram
d7ccf6a3c2
References working for current file 2021-03-03 20:38:52 +01:00
Luuk de Gram
a699dab2f7
Referencing fixes and more 2021-03-03 16:34:24 +01:00
Luuk de Gram
92adeb8826
Completion fixes 2021-03-02 22:01:13 +01:00
Luuk de Gram
1dd39914ec
Hovering fixes 2021-03-02 15:32:38 +01:00
Luuk de Gram
c8a2467fac
Compiles without errors. Still needs improvement 2021-03-01 22:18:38 +01:00
Luuk de Gram
ada0d13ba9
Fix symbolReferencesInternal 2021-03-01 19:34:28 +01:00
Luuk de Gram
e82ea30e6f
Last fixes in src/analysis.zig 2021-03-01 16:30:43 +01:00
Luuk de Gram
4645638434
Fixes and completions 2021-03-01 16:02:24 +01:00
Luuk de Gram
1c9da7053c
More type resolving 2021-03-01 14:32:19 +01:00
Luuk de Gram
b651a79380
Type resolving fixes 2021-02-28 21:57:15 +01:00
Luuk de Gram
96fcac89a4
Complete resolveTypeOfNodeInternal 2021-02-28 20:37:21 +01:00
Luuk de Gram
b175a01fce
Progress in resolveTypeOfNodeInternal 2021-02-28 17:42:34 +01:00
Luuk de Gram
709c1a70fd
Implement makeScopeInternal logic 2021-02-28 13:09:10 +01:00
Luuk de Gram
5f5d6ce4ea
Progress in makeScopeInternal 2021-02-27 21:55:39 +01:00
Luuk de Gram
72605c7549
A lot of fixes 2021-02-27 16:38:06 +01:00
Luuk de Gram
0133f0d863
First set of changes to work with new std's ast 2021-02-26 21:26:52 +01:00
S0urc3C0de
acab137c99 Update to latest zig.
Fix change for changing zig.ast name attribute to be optional.
2021-01-27 21:53:02 +01:00
Vesim
b2e456404c fix inStream/outStream removal 2021-01-10 08:12:11 +01:00
Lee Cannon
2a9edf243d Fixed string printing with {s} format specifier 2021-01-04 17:51:26 +00:00
Alexandros Naskos
78e74743e1
Use zig env to find zig lib path instead of assuming the executable comes from a distribution tarball 2020-11-15 21:32:27 +02:00
Alexandros Naskos
0bf9602d7b
Fixed infinite loop when analyzing variable declarations like const A = A; for semantic token highlighting 2020-11-15 20:37:00 +02:00
Alexandros Naskos
f7eff6632e
Cleaned up LSP types, add InitializeResult, no longer use a hardcoded string 2020-11-06 10:08:20 +02:00
Lee Cannon
6ade7cad3b
Update src/analysis.zig
Co-authored-by: Isaac Freund <ifreund@ifreund.xyz>
2020-11-03 22:44:50 +00:00
Lee Cannon
60fbb33a20 Use std.mem.trim instead of std.fmt.trim 2020-11-02 14:02:35 +00:00
Alexandros Naskos
162f1b2fbe Opaque type support 2020-10-10 12:25:50 +03:00
Alexandros Naskos
39b0f50bda Exposed analysis functions used by analysis-buddy 2020-09-12 18:48:09 +03:00
codehz
d57d04f3bb Adopt to new ast API 2020-09-01 13:53:52 +08:00
Alexandros Naskos
2964df3511 Separated labeled and non labeled blocks 2020-08-15 22:21:20 +03:00
Alexandros Naskos
0f54b0e860 Use scoped loggers 2020-08-14 13:41:34 +03:00
Alexandros Naskos
6c4d83d73c Removed unused block labels 2020-08-14 13:27:10 +03:00
Alexandros Naskos
c09e488109 Added addressof, fixed slice and array completions 2020-07-24 13:20:13 +03:00
Alexandros Naskos
d8510b3099 Small code cleanup 2020-07-24 13:04:01 +03:00
Alexandros Naskos
bda78e1f76 Fixed for zig master branch 2020-07-24 10:33:13 +03:00
Alexandros Naskos
e7a1f5c34f Fixed slice access type resolution 2020-07-23 21:33:43 +03:00
Alexandros Naskos
7063abec92 Fixed struct field goto and hover 2020-07-23 21:10:40 +03:00
Alexandros Naskos
213366f029 Fix various bugs 2020-07-23 20:30:03 +03:00
Alexandros Naskos
b71585da1d Fixed for latest zig master build 2020-07-23 19:06:39 +03:00
SuperAuguste
76dcc8cbe2 null fix 2020-07-17 10:01:21 -04:00
SuperAuguste
489378b939 fix comment in references.zig, format 2020-07-16 15:19:08 -04:00
SuperAuguste
f00d09c746 fix almost everything - commented some things out, please don't file any issues yet! 2020-07-16 15:02:30 -04:00
SuperAuguste
1d7fed7f87 even moar!!! infix/prefix changes are the only ones remaining 2020-07-16 12:07:21 -04:00
SuperAuguste
20f440b3a0 more fixes 2020-07-16 12:04:23 -04:00
SuperAuguste
ce841d1dc4 ids -> tags (part 2) 2020-07-16 11:05:56 -04:00
SuperAuguste
da4d2c2be1 ids -> tags (part 1) 2020-07-16 10:56:22 -04:00
Alexandros Naskos
6eee43af2f Fixed build on latest zig nightly 2020-07-12 22:12:09 +03:00
Alexandros Naskos
e1bce76c63 Fixed enum completion bug 2020-07-08 04:11:52 +03:00
Alexandros Naskos
62774d065b Reworked tag stores, fixed memory leak 2020-07-08 04:05:44 +03:00
Alexandros Naskos
5454883d2d Added *, ? completions, improved readme 2020-07-07 23:26:12 +03:00
Alexandros Naskos
b61785eb3e Optimize document symbols 2020-07-07 11:57:02 +03:00
Alexandros Naskos
c067bce9fa Fixed to use latest HashMap API 2020-07-06 00:56:41 +03:00
Alexandros Naskos
d8aba7da0b Correctly support utf16 offsets 2020-07-03 02:31:28 +03:00
Alexandros Naskos
8c154c2a60 Added stack trace leak reporting to the debug allocator, fixed remaining two memory leaks 2020-07-02 19:13:10 +03:00
Alexandros Naskos
671318730a Started adding session tests, finished (buggy) main loop rewrite 2020-06-30 15:46:43 +03:00
Alexandros Naskos
3be74cbdc5 Dont use variable decl init node blindly 2020-06-28 16:08:15 +03:00
Alexandros Naskos
108a2dbd64 Semantic highlighting improvements 2020-06-27 20:45:58 +03:00
Alexandros Naskos
8bc6087646 Completed renaming 2020-06-27 15:29:45 +03:00
Alexandros Naskos
beb900f1d9 Added label renaming 2020-06-27 03:16:14 +03:00
Alexandros Naskos
4952c34481 Use std.log 2020-06-26 14:29:59 +03:00
Alexandros Naskos
b3f6143e08 Use print instead of warn 2020-06-26 03:26:09 +03:00
axzn
c94efa8ac0 fix ZLS flagging std "cos_" as not camel case (see issue #120) 2020-06-24 11:28:02 +02:00
Alexandros Naskos
41da6b88ef Resolve through comptime expressions 2020-06-23 19:57:28 +03:00
Alexandros Naskos
6d75551f7a Removed todo comment 2020-06-23 13:37:07 +03:00
Alexandros Naskos
9997535a3e Basic support for switch payloads 2020-06-23 13:32:37 +03:00
Alexandros Naskos
a0f1795f2d Fixed infinite loop with usingnamespace cycles 2020-06-23 12:43:56 +03:00
Alexandros Naskos
bdbfea0737 removed accidental leftover code 2020-06-23 12:16:37 +03:00
Alexandros Naskos
c8af53ef7a Fix crash when using param identifier in the same param's type expression 2020-06-23 12:15:18 +03:00
Alexandros Naskos
eab1f4783b Removed unused code 2020-06-18 20:31:39 +03:00
Alexandros Naskos
e59e1f08e5 Align expr fix 2020-06-18 20:30:58 +03:00
Alexandros Naskos
fc769e7e83 Fixed enum access 2020-06-18 15:43:03 +03:00
Alexandros Naskos
16b44a334b Finished semantic token analysis 2020-06-18 15:12:09 +03:00
Alexandros Naskos
6c718a59c4 Fixed infinite loop 2020-06-18 03:23:56 +03:00
Alexandros Naskos
42f1325488 Prototype semantic tokens implementation with actual semantic analysis 2020-06-17 23:36:40 +03:00
Alexandros Naskos
d873b877e7 Various fixes 2020-06-17 15:07:21 +03:00
Alexandros Naskos
8d69fdb95a Started working on our own Type, differentiate between values of a type and the type itself. 2020-06-17 05:12:12 +03:00
Alexandros Naskos
20ec7470bb Respond to shutdown request 2020-06-17 00:26:45 +03:00
Alexandros Naskos
fd424277ab Run zig fmt 2020-06-16 15:49:57 +03:00
Alexandros Naskos
cad6b78a49 Cleaned up ComptimeStringMaps 2020-06-16 15:45:16 +03:00
Alexandros Naskos
f6e3109ff3 Yet better aliases, better label position context detection 2020-06-15 04:39:50 +03:00
Alexandros Naskos
02de547ce9 Better alias support, fix another build file refcount issue 2020-06-15 03:59:49 +03:00
Alexandros Naskos
bfdeecbd04 Better alias support 2020-06-15 01:19:21 +03:00
Alexandros Naskos
e68bec8673 Simplified some code 2020-06-14 23:43:29 +03:00
Alexandros Naskos
48019dd7e2 Added label support 2020-06-14 22:24:18 +03:00
Alexandros Naskos
7f12928fe9 Dont show fields in global completions and from usingnamespaced scopes 2020-06-14 13:03:14 +03:00
Alexandros Naskos
112f6d735a Correctly handle inferred error sets, add self argument support when evaluating bound type params, semanticToken scaffolding 2020-06-13 21:20:04 +03:00
Alexandros Naskos
04638a6d4d Fixed occasional crash on Sublime text, only get params when we use then 2020-06-12 20:31:33 +03:00
Alexandros Naskos
98ebac6d64 Take more client capabilities into account 2020-06-12 17:42:41 +03:00
Alexandros Naskos
1086d3a29f Added bound function type params 2020-06-12 14:56:46 +03:00
Alexandros Naskos
be9f2de43a Fixed error union decls 2020-06-11 11:21:08 +03:00
Alexandros Naskos
693e810d75 Resovle parens, only skip empty container fields where we have to 2020-06-11 11:12:31 +03:00
Alexandros Naskos
28e9d08f03 Stop adding malformed container decls into scopes 2020-06-11 03:20:44 +03:00
Alexandros Naskos
80dd19dd8b Usingnamespace support 2020-06-11 02:40:11 +03:00
Alexandros Naskos
323b05856e Fixed array payload type resolution 2020-06-11 01:09:28 +03:00
Alexandros Naskos
7650decfa0 Improvements 2020-06-11 01:00:13 +03:00
Alexandros Naskos
b8b6c534e8 Fixed field access 2020-06-11 00:24:57 +03:00
Alexandros Naskos
86e417e8dc Add hover, goto, completions for alternate declaration types 2020-06-10 22:52:33 +03:00
Alexandros Naskos
545989339d Remove unused code, fixed snippet self param skipping 2020-06-10 22:05:11 +03:00
Alexandros Naskos
05d75781de Now builds! 2020-06-10 21:24:17 +03:00
Alexandros Naskos
3bdb2ee444 More progress 2020-06-10 20:48:40 +03:00
Alexandros Naskos
d6609d918b More progress 2020-06-10 19:54:01 +03:00
Alexandros Naskos
9b08d9e88a Started removing scope_nodes, using symbol table instead 2020-06-10 19:01:44 +03:00
Alexandros Naskos
0a9cf87585 Added symbol tables 2020-06-10 16:12:00 +03:00
Alexandros Naskos
aa0e3e3736
Merge pull request #108 from Vexu/cast
Support completion for builtin casts with explicity type parameter
2020-06-09 10:57:50 +03:00
SuperAuguste
3c2c1e97ed preamble to usingnamespace 2020-06-08 23:21:55 -04:00
Vexu
3fc7ee75c2
support completion for builtin casts with explicity type parameter 2020-06-08 19:07:34 +03:00
Alexandros Naskos
71500428b6 Fixed occasional crash 2020-06-07 12:21:01 +03:00
SuperAuguste
d35a71806b fix 2020-06-06 18:02:53 -04:00
Veikka Tuominen
da170c44b9
correctly skip first comma in bound function snippets 2020-06-06 10:35:59 +03:00
Alexandros Naskos
73b58abe51 Detect self arguments and skip it when generating snippets 2020-06-06 02:44:43 +03:00
Alexandros Naskos
563c4f0294 Fixed newlines in markdown line comments 2020-06-05 00:19:00 +03:00
Alexandros Naskos
b0bb8888d3 Removed unreachable, switch cases can trigger this 2020-06-03 19:59:26 +03:00
Alexandros Naskos
34fbef97fe Added If, While, For payload type resolution 2020-06-03 19:56:00 +03:00
Alexandros Naskos
ef95c76e45 Added doc comments on hover 2020-06-03 11:23:14 +03:00
Alexandros Naskos
d429aa6105 Removed comment 2020-06-02 16:49:31 +03:00
Alexandros Naskos
e7157ba381 Preparing for semantic tokens support. Fix a crash on some function calls 2020-06-02 16:48:23 +03:00
Alexandros Naskos
5ae7b0a855 Resolve type parameters in some circumstances 2020-06-01 20:48:14 +03:00
SuperAuguste
c9af33011a fix function defs in containers 2020-05-29 16:07:00 -04:00
SuperAuguste
b08ff62595 Merge branch 'master' of https://github.com/SuperAuguste/zls 2020-05-29 16:01:45 -04:00
SuperAuguste
e945c4cca0 fix 2020-05-29 16:01:35 -04:00
Alexandros Naskos
4e87390196 DeclsFromIndex no longer needs to return the innermost container, we find it while processing expressions 2020-05-29 12:46:50 +03:00
Alexandros Naskos
bc8ecd28f4
Merge pull request #40 from Vexu/err
Implement global error set and enum literal completion
2020-05-28 19:04:06 +03:00
Vexu
c1ba26e0a2
implement completion for enum literals 2020-05-28 18:21:51 +03:00
Vexu
22a863134b
implement global error set completion 2020-05-28 15:45:11 +03:00
SuperAuguste
985a1d6398 give tests names in outline 2020-05-28 08:41:40 -04:00
SuperAuguste
0720452217 fix more no_names and build config 2020-05-27 21:14:27 -04:00
SuperAuguste
2b153e046c outlines, made JSON stdout memory dynamic 2020-05-27 20:39:36 -04:00
Alexandros Naskos
6f8fbe1ccb Added tests. 2020-05-27 21:58:35 +03:00
Alexandros Naskos
406e400f0c Pointer to array slicing yields a pointer to array type, not a slice type. 2020-05-27 19:01:23 +03:00
Alexandros Naskos
7602f34bb4 Added .?, .*, [] support 2020-05-27 18:49:11 +03:00