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 inherit
ed 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