aboutsummaryrefslogtreecommitdiff
path: root/editors
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Merge #5101bors[bot]2020-06-302-1/+6
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5101: Add expect -- a light-weight alternative to insta r=matklad a=matklad This PR implements a small snapshot-testing library. Snapshot updating is done by setting an env var, or by using editor feature (which runs a test with env-var set). Here's workflow for updating a failing test: ![expect](https://user-images.githubusercontent.com/1711539/85926956-28afa080-b8a3-11ea-9260-c6d0d8914d0b.gif) Here's workflow for adding a new test: ![expect-fresh](https://user-images.githubusercontent.com/1711539/85926961-306f4500-b8a3-11ea-9369-f2373e327a3f.gif) Note that colorized diffs are not implemented in this PR, but should be easy to add (we already use them in test_utils). Main differences from insta (which is essential for rust-analyzer development, thanks @mitsuhiko!): * self-updating tests, no need for a separate tool * fewer features (only inline snapshots, no redactions) * fewer deps (no yaml, no persistence) * tighter integration with editor * first-class snapshot object, which can be used to write test functions (as opposed to testing macros) * trivial to tweak for rust-analyzer needs, by virtue of being a workspace member. I think eventually we should converge to a single snapshot testing library, but I am not sure that `expect` is exactly right, so I suggest rolling with both insta and expect for some time (if folks agree that expect might be better in the first place!). # Editor Integration Implementation The thing I am most excited about is the ability to update a specific snapshot from the editor. I want this to be available to other snapshot-testing libraries (cc @mitsuhiko, @aaronabramov), so I want to document how this works. The ideal UI here would be a code action (:bulb:). Unfortunately, it seems like it is impossible to implement without some kind of persistence (if you save test failures into some kind of a database, like insta does, than you can read the database from the editor plugin). Note that it is possible to highlight error by outputing error message in rustc's format. Unfortunately, one can't use the same trick to implement a quick fix. For this reason, expect makes use of another rust-analyzer feature -- ability to run a single test at the cursor position. This does need some expect-specific code in rust-analyzer unfortunately. Specifically, if rust-analyzer notices that the cursor is on `expect!` macro, it adds a special flag to runnable's JSON. However, given #5017 it is possible to approximate this well-enough without rust-analyzer integration. Specifically, an extension can register a special runner which checks (using regexes) if rust-anlyzer runnable covers text with specific macro invocation and do special magic in that case. closes #3835 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Add light-weight snapshot testing library with editor integrationAleksey Kladov2020-06-272-1/+6
| |/
* | Merge #5119bors[bot]2020-06-291-3/+9
|\ \ | | | | | | | | | | | | | | | | | | | | | 5119: Show notification while SSR is in progress r=matklad a=davidlattimore Ideally we would (a) show progress and (b) allow cancellation, but at least now there's some indication to the user that something is happening. Co-authored-by: David Lattimore <[email protected]>
| * | Show notification while SSR is in progressDavid Lattimore2020-06-291-3/+9
| |/ | | | | | | Ideally we would (a) show progress and (b) allow cancellation, but at least now there's some indication to the user that something is happening.
* / Fix SSR prompt following #4919David Lattimore2020-06-271-1/+1
|/
* Merge #5017bors[bot]2020-06-266-83/+104
|\ | | | | | | | | | | | | | | | | | | | | | | 5017: Add custom cargo runners support. r=matklad a=vsrs This PR adds an option to delegate actual cargo commands building to another extension. For example, to use a different manager like [cross](https://github.com/rust-embedded/cross). https://github.com/vsrs/cross-rust-analyzer is an example of such extension. I'll publish it after the rust-analyzer release with this functionality. Fixes https://github.com/rust-analyzer/rust-analyzer/issues/4902 Co-authored-by: vsrs <[email protected]>
| * Fix ts lintsvsrs2020-06-241-2/+2
| |
| * Switch to ShellExecution instead of full Taskvsrs2020-06-242-41/+45
| |
| * Add custom cargo runnersvsrs2020-06-246-56/+73
| |
* | Merge branch 'Veetaha-feat/sync-branch'Aleksey Kladov2020-06-252-103/+0
|\ \
| * | Migrate flycheck to fully-lsp-compatible progress reports (introduce ↵veetaha2020-06-182-103/+0
| | | | | | | | | | | | ra_progress crate)
* | | Merge #5025bors[bot]2020-06-241-57/+27
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5025: Don't mess with messy temp dir and just download into extension dir r=matklad a=Veetaha Temp dirs are messy. Dealing with them requires handling quite a bunch of edge cases. As proposed by lnicola this seems better to just put the temp files in the extension dir and not care much about suddenly leaving garbage. Instead we get shorter and less platform-caveat-y code. We will also assume users don't try to issue a download in different vscode windows simultaneously. Fixes #5019 Co-authored-by: Veetaha <[email protected]>
| * | | Append 10 random hex chars to temp artifact filesVeetaha2020-06-241-1/+5
| | | |
| * | | Don't mess with messy temp dir and just download into extension dirVeetaha2020-06-241-57/+23
| | |/ | |/| | | | | | | | | | | | | | | | | | | Temp dirs are messy. Dealing with them requires handling quite a bunch of edge cases. As proposed by lnicola this seems better to just put the temp files in the extension dir and not care much about suddenly leaving garbage. Instead we get shorter and less platform-caveat-y code. We will also assume users don't try to issue a download in different vscode windows simultaneously
* / | Remove namedExports configLaurențiu Nicola2020-06-241-6/+1
|/ /
| |
| \
| \
| \
| \
| \
*-----. \ Merge #4992 #4993 #4994 #4997 #4998bors[bot]2020-06-234-50/+66
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4992: Never disable error logging on the frontend r=matklad a=Veetaha 4993: Make bootstrap error message more informative and better-fitting r=matklad a=Veetaha Now this better fits standard vscode extension activation failure message and suggests enabling verbose logs. ![image](https://user-images.githubusercontent.com/36276403/85321828-ffbb9400-b4cd-11ea-8adf-4032b1f62dfd.png) 4994: Decouple http file stream logic from temp dir logic r=matklad a=Veetaha Followup for #4989 4997: Update manual.adoc r=matklad a=gwutz GNOME Builder (Nightly) supports now rust-analyzer 4998: Disrecommend trace.server: "verbose" for regular users r=matklad a=Veetaha This option has never been useful for me, I wonder if anyone finds regular users can use this for sending logs Co-authored-by: Veetaha <[email protected]> Co-authored-by: Günther Wagner <[email protected]>
| | | | * | Disrecommend trace.server: "verbose" for regular usersVeetaha2020-06-221-1/+1
| |_|_|/ / |/| | | |
| | | * | Decouple http file stream logic from temp dir logicVeetaha2020-06-222-44/+57
| |_|/ / |/| | |
| | * | Make bootstrap error message more informative and better-fittingVeetaha2020-06-221-4/+8
| | | |
| * | | Never disable error logging on the frontendVeetaha2020-06-221-1/+0
|/ / /
* / / Hotfix skipping the first chunks of the artifactsVeetaha2020-06-221-6/+7
|/ /
* | Download artifacts into tmp dirVeetaha2020-06-202-11/+60
| |
* | Update workaround commentVeetaha2020-06-191-3/+2
| |
* | Add `rust-analyzer.gotoLocation` commandvsrs2020-06-184-0/+23
| |
* | Fix rust-analyzer.debug.openDebugPane optionvsrs2020-06-182-2/+2
|/
* Warnings as hint or infoGabriel Valfridsson2020-06-161-0/+18
|
* checkOnSafe.features and checkOnSafe.allFeatures now work identically.Clemens Wasser2020-06-101-2/+5
|
* Most of the checkOnSafe options now default to the cargo equivalent.Clemens Wasser2020-06-101-4/+7
|
* Added the rust-analyzer.checkOnSave.features option.Clemens Wasser2020-06-101-0/+8
|
* Merge #4773bors[bot]2020-06-081-0/+10
|\ | | | | | | | | | | | | | | | | | | 4773: Run|Debug hover actions. r=matklad a=vsrs ![hover_actions_run](https://user-images.githubusercontent.com/62505555/83335644-dfc1f780-a2b6-11ea-820b-ccaa82290e7d.gif) This hover actions work exactly like corresponding lenses. Co-authored-by: vsrs <[email protected]>
| * Add Run|Debug hover actionsvsrs2020-06-061-0/+10
| |
* | Fix VSCode settingsVincent Isambart2020-06-071-4/+1
|/
* Fix Run lens.vsrs2020-06-061-1/+1
|
* Remove hover contents marking as trusted.vsrs2020-06-051-15/+2
| | | | | Hover contents might be extracted from raw doc comments and need some validation.
* Add hover actions LSP extension documentation.vsrs2020-06-051-1/+1
|
* Add hover actions as LSP extensionvsrs2020-06-054-7/+79
|
* Merge branch 'master' into compute-lazy-assitsMikhail Rakhmanov2020-06-031-0/+19
|\ | | | | | | | | | | # Conflicts: # crates/rust-analyzer/src/main_loop/handlers.rs # crates/rust-analyzer/src/to_proto.rs
| * Document rust-project.jsonAleksey Kladov2020-06-031-0/+19
| |
* | Fix review commentsMikhail Rakhmanov2020-06-032-3/+0
| |
* | Merge remote-tracking branch 'upstream/master' into compute-lazy-assitsMikhail Rakhmanov2020-06-024-23/+31
|\| | | | | | | | | # Conflicts: # crates/rust-analyzer/src/to_proto.rs
| * Merge #4710bors[bot]2020-06-023-21/+29
| |\ | | | | | | | | | | | | | | | | | | | | | 4710: New runnables r=matklad a=matklad bors d=@vsrs Co-authored-by: Aleksey Kladov <[email protected]>
| | * Spec better runnablesAleksey Kladov2020-06-021-1/+1
| | |
| | * New runnables APIAleksey Kladov2020-06-023-20/+28
| | |
| * | Merge #4711bors[bot]2020-06-021-2/+2
| |\ \ | | |/ | |/| | | | | | | | | | | | | | | | 4711: Disable rust-analyzer.{cargo,checkOnSave}.allFeatures by default r=matklad a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| | * Disable rust-analyzer.{cargo,checkOnSave}.allFeatures by defaultLaurențiu Nicola2020-06-021-2/+2
| | |
* | | Preliminary implementation of lazy CodeAssitsMikhail Rakhmanov2020-06-024-38/+65
|/ /
* | Move run commands to commands.tsAleksey Kladov2020-06-023-133/+134
| |
* | Merge #4580bors[bot]2020-06-027-59/+107
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 4580: Fix invoking cargo without consulting CARGO env var or standard installation paths r=matklad a=Veetaha Followup for #4329 The pr essentially fixes [this bug](https://youtu.be/EzQ7YIIo1rY?t=2189) cc @lefticus Co-authored-by: veetaha <[email protected]>
| * Change Runnable.bin -> Runnable.kindveetaha2020-05-317-59/+104
| | | | | | | | | | | | As per matklad, we now pass the responsibility for finding the binary to the frontend. Also, added caching for finding the binary path to reduce the amount of filesystem interactions.
| * Fix invoking cargo without consulting CARGO or standard installation pathsveetaha2020-05-312-4/+7
| |