1
1
mirror of https://github.com/oxalica/nil.git synced 2024-12-01 22:45:44 +03:00
Commit Graph

189 Commits

Author SHA1 Message Date
oxalica
0fb9e13883 Add constant and builtin for semantic tokens
The `defaultLibrary` doesn't quite fit builtins, since the former also
include standard library and are not considered "language essentials".
2022-12-09 22:12:49 +08:00
figsoda
661af99ab6 Add remove_empty_inherit assist 2022-12-08 06:29:36 +08:00
figsoda
101387fb2f Add add_to_top_level_lambda_param assist 2022-12-06 04:54:54 +08:00
figsoda
cbc6298c7a Add multiple rhs support for convert_to_inherit assist 2022-12-06 04:53:34 +08:00
oxalica
46eeb57f9b Add { and } getters for Pat 2022-12-05 02:12:53 +08:00
figsoda
ef9bdb801e add convert_to_inherit for { a.b = b; } 2022-12-02 05:22:18 +08:00
oxalica
f62a769325 Limit semantic token range to fix performance issue 2022-12-01 07:41:39 +08:00
oxalica
8f8a5d2cff Fix highlight kind 2022-11-28 00:57:20 +08:00
oxalica
10e7fc394b Impl documentHighlight 2022-11-28 00:40:58 +08:00
oxalica
eb7c84c429 Remove rowan dependency from crates except syntax 2022-11-26 17:58:00 +08:00
oxalica
8001f0d71b Don't highlight string fragment
Fragment highlighting would overwrite the highlighting of injected
languages.
2022-11-26 16:33:32 +08:00
oxalica
84e39a65c9 Allow disable diagnostics for some files 2022-11-25 23:42:43 +08:00
oxalica
9794a2eb97 Impl assist to flatten Attrset in bindings 2022-11-25 01:23:33 +08:00
oxalica
655d5247a6 Impl assist to pack bindings 2022-11-25 00:23:22 +08:00
oxalica
1f5d8ceee0 Simplify and fix tests for assists 2022-11-24 23:07:31 +08:00
oxalica
f1304942e3 Fix rust 1.64 compatibility
nixpkgs still have rust 1.64 on master.
2022-11-24 19:20:42 +08:00
oxalica
8d32b2a081 Impl code action for converting to inherit 2022-11-24 03:43:03 +08:00
oxalica
bea40f71fc Impl string unescaping by parts 2022-11-17 03:11:21 +08:00
oxalica
c4bcb3015b Impl indent string stripping 2022-11-17 02:59:14 +08:00
oxalica
276615a48d Add tests for syntax::semantic 2022-11-16 23:11:27 +08:00
oxalica
170f89761d Complete and add tests for AST getters 2022-11-16 22:40:36 +08:00
oxalica
4087d3acde Optimize searching let and rec in Attrset 2022-11-16 21:39:53 +08:00
oxalica
1ac520b784 Refactor Attrset desugaring and move out some logic 2022-11-16 21:22:27 +08:00
oxalica
3fa46cc956 Track Attr source info in Ty 2022-11-14 20:17:34 +08:00
oxalica
dfffc45c35 Simplify and unify convertion helpers 2022-11-11 05:56:39 +08:00
oxalica
a13e89c622 Fix dead lock in apply_vfs_change 2022-11-11 05:26:55 +08:00
oxalica
d0a5ea4364 Fix PID waiter impl 2022-11-10 16:31:59 +08:00
oxalica
93f15d882f Impl document links 2022-11-10 03:31:23 +08:00
oxalica
3749c6bb3a Keep literal strings during lowering 2022-11-10 03:31:23 +08:00
oxalica
e3ce3bfca0 Move identifier check and quoting into syntax 2022-11-10 01:25:01 +08:00
oxalica
1e3fdf59cb Fix type for condition expr of if 2022-11-09 23:07:15 +08:00
oxalica
f43380d009 Tweak type formatter 2022-11-07 14:47:06 +08:00
oxalica
e8659c2e08 Fix clippy 2022-11-07 13:58:56 +08:00
oxalica
3171734d0d Show hover message for selection Attr 2022-11-07 13:56:25 +08:00
oxalica
72db1ef2bc Impl completion triggered . and ? 2022-11-07 12:58:01 +08:00
oxalica
2997e14a66 Fix completion inside non-last Attr 2022-11-07 12:29:30 +08:00
oxalica
d714bedf1e Construct empty NAME nodes for recovery 2022-11-07 11:24:30 +08:00
oxalica
efca332ce9 Complete attrset fields 2022-11-07 10:50:59 +08:00
oxalica
2cd3354204 Show types in hover messages 2022-11-07 09:35:09 +08:00
oxalica
8e4b0d6764 Initial impl for type inference 2022-11-07 09:14:10 +08:00
oxalica
19871b3842 Move string-related desugaring into syntax crate 2022-11-03 03:41:03 +08:00
oxalica
c064894105 Monitor client process's liveness on Linux
Some client use UNIX domain sockets for communitation. But they are not
automatically closed when the client exits abnormally, resulting leaked
server instances.
2022-10-22 14:24:51 +08:00
oxalica
c84d1619d0 Refactor API of VfsPath 2022-10-11 02:44:14 +08:00
oxalica
756be130c8 Handle workspace/didChangeWatchedFiles
This notification is sent unexpectedly by VSCode, observed in #24.
2022-10-04 05:06:55 +08:00
oxalica
2a9dcd5b15 Resolve Path to VfsPath instead of FileId
This allows resolving to files not loaded. File existence check is
delayed to LSP server side.
2022-10-04 05:01:50 +08:00
oxalica
eb71b56015 Fix lost root changes 2022-10-04 04:03:19 +08:00
oxalica
31b714f3da Use absolute VfsPath and remove file preloading
We currently don't enable any workspace features.
Reading file on demand can be more robust and memory efficient.

Fixes #21
2022-09-28 17:56:20 +08:00
oxalica
ec7d3490f2 Report duplicated lambda parameters 2022-09-27 22:41:22 +08:00
oxalica
ac84014360 Clarify build requirements and add CI 2022-09-27 22:23:22 +08:00
oxalica
5f1eab84a6 Async diagnostics calculation 2022-09-27 21:20:36 +08:00
oxalica
ca9c97143b Impl multi-threading and request cancellation 2022-09-27 21:09:03 +08:00
oxalica
fedf5eb649 Reorganize server states 2022-09-26 17:54:08 +08:00
oxalica
f535de51d1 Impl file formatting via external command
Fixes #12
2022-09-26 15:54:01 +08:00
oxalica
764c2be3bc Use last_line instead of line_count 2022-09-26 15:13:48 +08:00
oxalica
16c255449a Impl basic support for document symbol hierarchy
Currently the tree is flattened to LetIn and *Attrset nodes. Only
binding names are listed.

Fixes #16
2022-09-26 02:04:51 +08:00
oxalica
5f53c3c83e Recalculate all diagnostics after config change 2022-09-26 00:23:46 +08:00
oxalica
a370df35c9 Impl diagnostic filter 2022-09-25 23:47:58 +08:00
oxalica
fe625a2692 Decouple error messages for human from tests 2022-09-25 21:40:28 +08:00
oxalica
ad1b27a6d8 Parse Expr in Binding-position as recovery 2022-09-25 21:40:28 +08:00
oxalica
8f9882d1ad Always wrap error syntax in ERROR nodes
This prevents error tokens accidentally affect the container node, eg.
the dangling `let` inside an Attrset.

Fixes #20
2022-09-25 21:39:52 +08:00
oxalica
02be7d9628 Tweak builtins and hint user about missing docs 2022-09-23 18:52:47 +08:00
oxalica
c785fc55f4 Show incomplete syntax as errors by default
Fixes #11
2022-09-22 22:32:11 +08:00
oxalica
c71d4b7070 Fix build and show hints when nix is not found 2022-09-22 21:30:19 +08:00
oxalica
f94b668d25 Impl hover for names 2022-09-22 20:12:47 +08:00
oxalica
c361e61da0 Show docs for builtin completions 2022-09-22 18:48:16 +08:00
oxalica
cf182a8ca4 Generate builtins from Nix 2022-09-22 18:26:56 +08:00
oxalica
039ae629eb Support renaming inherited names 2022-09-21 18:58:23 +08:00
oxalica
2f0231fde9 Move server capabilities into an individual mod 2022-09-21 17:28:42 +08:00
oxalica
6a7ecb4386 Impl LSP settings 2022-09-21 17:24:14 +08:00
oxalica
9bc685c1c8 Add instructions to run fuzzer 2022-09-20 19:56:37 +08:00
oxalica
f36ec4af63 Prettify syntax error messages 2022-09-20 19:53:34 +08:00
oxalica
5cab069314 Monomorphize UnexpectedToken error 2022-09-20 19:53:24 +08:00
oxalica
1463d498b5 Enhance error recovery for incomplete syntax 2022-09-20 18:16:07 +08:00
oxalica
d31baa16cb Fix highlighting of or 2022-09-20 16:25:45 +08:00
oxalica
ae6981ea32 Impl incremental text change 2022-09-19 09:28:17 +08:00
oxalica
15cd08d0d0 Shrink and update dependencies 2022-09-19 09:28:17 +08:00
oxalica
0ab60fdff0 Unify naming of bijection getters to A_for_B for B -> A 2022-09-19 09:28:17 +08:00
oxalica
8a1a899cff Tweak VFS API to simplify usage 2022-09-19 09:28:17 +08:00
oxalica
d2ce10e9af Load only .nix files into vfs 2022-09-19 09:28:17 +08:00
oxalica
bb186c9d14 Fix Attr highlighting 2022-09-12 10:56:37 +08:00
oxalica
e04b1b968d Wrap panicking in handlers into RPC failure 2022-09-12 10:21:10 +08:00
oxalica
4f3f9c970d Impl semantic highlighting 2022-09-12 09:59:04 +08:00
oxalica
41bc624f97 Comment test cases of LineMap 2022-09-12 06:02:18 +08:00
oxalica
b469b939f1 Support renaming to strings 2022-09-06 09:00:15 +08:00
oxalica
55cda6788c Impl renaming 2022-09-06 08:49:22 +08:00
oxalica
0cdcbe92db Always use the whole Attr location for Name 2022-09-06 06:55:38 +08:00
oxalica
dd476b39e7 Proper error handling for LSP 2022-09-06 04:41:42 +08:00
oxalica
dabcd8b962 Burn version information in binary 2022-09-06 02:30:24 +08:00
oxalica
5bdf49686c Refactor workspace layout 2022-09-06 01:54:33 +08:00