Commit Graph
1802 Commits
Author SHA1 Message Date
Antonio Scandurra 306ebb256c Merge pull request #218 from zed-industries/lsp
Integrate rust-analyzer and highlight diagnostics
2021-11-03 10:17:13 +01:00
Antonio Scandurra 258b89bb70 Request autoscroll when undoing/redoing 2021-11-03 09:44:23 +01:00
Antonio Scandurra 20a77f4c5e Fix test for disk-based diagnostics 2021-11-03 09:39:15 +01:00
Max Brunsfeld 9a7ecfbc4f Use status colors for diagnostic underlines 2021-11-02 17:51:18 -07:00
Max BrunsfeldandNathan Sobo 8d3f42de52 Start language servers based on buffers' languages
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-02 17:41:01 -07:00
Max Brunsfeld a66b81d60a Add an integration test for replicating buffer's diagnostics 2021-11-02 14:57:24 -07:00
Max Brunsfeld 89392cd23d Avoid using worktree handle in File's path methods
This avoids a circular model update that was happening
when trying to retrieve the absolute path from a buffer's
file while applying remote operations.
2021-11-02 14:33:55 -07:00
Max BrunsfeldandNathan Sobo 1995bd89a6 Deserialize buffer's diagnostics
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-02 12:29:03 -07:00
2c57703ad6 Explicitly shut down language servers when quitting the app
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-02 13:16:25 -06:00
Antonio Scandurra 882c8ce696 Avoid error during deserialization if the result field isn't there 2021-11-02 14:58:00 +01:00
Antonio Scandurra f5aa07aac9 Remove all windows before quitting
This gives all entities a chance of running `Drop::drop` which,
in turn, could cause them to spawn a critical task. For example,
we use this capability when a language server is dropped and we
need to asynchronously send a shutdown message.
2021-11-02 14:55:31 +01:00
Max Brunsfeld 61e06487b7 Avoid circular model update when sending diagnostics operations 2021-11-01 17:14:22 -07:00
Max Brunsfeld f0353d6aba Add note in README about rustc bug on macOS monterey 2021-11-01 17:11:40 -07:00
Max BrunsfeldandNathan Sobo 0e62ddbb65 Replicate diagnostics to remote buffers
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-01 15:28:37 -07:00
Max BrunsfeldandNathan Sobo 40c861c249 Move protobuf logic from buffer crate to language crate
This will enable us to add operations that only pertain to the language crate.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-01 14:05:19 -07:00
Max Brunsfeld 78d97a3db2 Use Diagnostic struct in buffer's diagnostics multimap 2021-11-01 12:59:01 -07:00
1aee7bdb1d Delay quit until language servers are gracefully shut down
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-01 11:57:31 -07:00
Max BrunsfeldandAntonio Scandurra b8994c2a89 Add a facility for delaying quit until critical tasks finish
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-01 11:57:31 -07:00
Antonio Scandurra 6e5ec2a00d Take a &clock::Global instead of cloning in edits_since 2021-11-01 10:48:20 +01:00
Antonio Scandurra 2919cbe9cb Try signing rust-analyzer in order to embed it in the app bundle 2021-11-01 10:30:10 +01:00
Antonio Scandurra f59be5fecf Always notify when receiving buffer operations
We had changed it to only emit a notification when the buffer was
actually edited, but we also want to notify when we receive non-edit
operations, such as a selection update.
2021-11-01 10:06:23 +01:00
Nathan Sobo 3228a55329 Fix test-support feature propagation for editor and workspace 2021-10-30 07:40:20 -06:00
Antonio ScandurraandNathan Sobo b571eae4f3 Extend empty diagnostic ranges by one character
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-29 19:09:19 +02:00
Antonio ScandurraandNathan Sobo 6212ebad9b Communicate with language servers in terms of UTF-16 coordinates
This required indexing UTF-16 positions in `Rope`. We tried opting
into the UTF-8 experimental support but it didn't seem to work
correctly and the standard is UTF-16 anyway.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-29 18:33:23 +02:00
Antonio Scandurra 9c1b01521a Avoid unnecessary conversion to offsets in diagnostics_in_range 2021-10-29 14:41:41 +02:00
Antonio Scandurra 78c158e1a4 Support only UTF-8 for now when communicating with language server 2021-10-29 12:02:42 +02:00
Antonio Scandurra a82a12fd14 Bundle fat-binary for rust-analyzer 2021-10-29 11:41:07 +02:00
Max Brunsfeld 2cbb313467 Avoid panic when rust language isn't present (project unit tests) 2021-10-28 17:12:17 -07:00
Max Brunsfeld e1556893f7 Merge branch 'anchor-map-selections' into lsp 2021-10-28 17:08:06 -07:00
Max Brunsfeld 927118726c Merge pull request #216 from zed-industries/anchor-map-selections
Represent selection sets as anchor range maps
2021-10-28 17:07:45 -07:00
Max Brunsfeld 2952f2c905 🎨 anchor.rs 2021-10-28 16:48:07 -07:00
Max Brunsfeld acb29eb273 Ignore vendor/bin folder 2021-10-28 16:32:56 -07:00
Max Brunsfeld a1e576343e Rename AnchorRangeSet::to_point_ranges -> point_ranges 2021-10-28 16:32:49 -07:00
Max Brunsfeld 9bc08e446b Fix unit test for on-disk-changes to not rely on selection bias 2021-10-28 16:17:07 -07:00
Max Brunsfeld f3cd710f21 Create valid disjoint selection sets in selections_in_ranges 2021-10-28 16:04:16 -07:00
Max Brunsfeld efc85d1b75 Get the Editor crate compiling 2021-10-28 15:42:24 -07:00
Antonio ScandurraandMax Brunsfeld 9c74be3bf2 Start fixing compilation errors on Editor
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-28 19:36:43 +02:00
Antonio ScandurraandMax Brunsfeld ce8741977b Clip points coming from language server
This avoids panicking in Zed if the points they give us are invalid.

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-28 19:02:26 +02:00
Antonio ScandurraandMax Brunsfeld d12387b753 Ensure start endpoints always come before end endpoints
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-10-28 18:26:32 +02:00
Antonio Scandurra 50afb2d65f Remove stray println! statements in the LSP I/O code 2021-10-28 14:07:14 +02:00
Antonio Scandurra ee78d6f17b Express multi-cursor edits using the new coordinate space
The language server expects that ranges further in the list of edits
account for the impact of prior changes in the edit list.
2021-10-28 13:40:55 +02:00
Antonio Scandurra 7091e0c567 Add a unit test for disk-based diagnostics 2021-10-28 11:37:24 +02:00
Antonio Scandurra ac76706aa7 Sort LSP diagnostics by (start, end) 2021-10-28 11:36:33 +02:00
Antonio Scandurra fcb217b9e8 Report new_lines extent correctly when coalescing edits 2021-10-28 11:32:10 +02:00
Nathan SoboandMax Brunsfeld 9977248926 Adjust disk-based diagnostics based on edits since the last save
Still need to add tests... not sure if this is right yet.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-10-27 18:58:07 -06:00
0c10d6c82d Introduce FullOffset type
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-10-27 18:30:00 -06:00
Antonio Scandurra bc076c1cc1 Update display map snapshots when diagnostics are updated
This is similar to what we do when we receive new parse trees from
tree-sitter.
2021-10-27 12:42:16 +02:00
Antonio Scandurra a7a73a5b0b Fix bug in to_full_offset when Anchor::version != Content::version 2021-10-27 11:56:04 +02:00
Max BrunsfeldandNathan Sobo c539069cbb Include diagnostic info in HighlightedChunks iterator
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-26 17:57:50 -07:00
Max BrunsfeldandNathan Sobo f1db618be2 Generalize AnchorRangeMultimap's 'intersecting ranges' API
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-26 17:56:39 -07:00