aboutsummaryrefslogtreecommitdiff
path: root/editors
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge #3629bors[bot]2020-03-1912-691/+264
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3629: Alternative aproach to plugin auto update r=matklad a=matklad This is very much WIP (as in, I haven't run this once), but I like the result so far. cc @Veetaha The primary focus here on simplification: * local simplification of data structures and control-flow: using union of strings instead of an enum, using unwrapped GitHub API responses * global simplification of control flow: all logic is now in `main.ts`, implemented as linear functions without abstractions. This is stateful side-effective code, so arguments from [Carmack](http://number-none.com/blow/john_carmack_on_inlined_code.html) very much apply. We need all user interractions, all mutations, and all network requests to happen in a single file. * as a side-effect of condensing everything to functions, we can get rid of various enums. The enums were basically a reified control flow: ``` enum E { A, B } fn foo() -> E { if cond { E::A } else { E::B } } fn bar(e: E) { match e { E::A => do_a(), E::B => do_b(), } } ==>> fn all() { if cond { do_a() } else { do_b() } } ``` * simplification of model: we don't need to reinstall on settings update, we can just ask the user to reload, we don't need to handle nightly=>stable fallback, we can ask the user to reinstall extension, (todo) we don't need to parse out the date from the version, we can use build id for nightly and for stable we can write the info directly into package.json. Co-authored-by: Aleksey Kladov <[email protected]>
| * Rewrite auto-updateAleksey Kladov2020-03-1912-691/+264
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Everything now happens in main.ts, in the bootstrap family of functions. The current flow is: * check everything only on extension installation. * if the user is on nightly channel, try to download the nightly extension and reload. * when we install nightly extension, we persist its release id, so that we can check if the current release is different. * if server binary was not downloaded by the current version of the extension, redownload it (we persist the version of ext that downloaded the server).
* | Update deps; regen lock file; fix minimist CVEDarin Morrison2020-03-182-91/+158
|/
* Remove outDirOverridesEmil Lauridsen2020-03-172-7/+0
|
* Remove unused config from VSCode extEmil Lauridsen2020-03-171-1/+0
|
* Change existing OUT_DIR override config to make use of new infrastructureEmil Lauridsen2020-03-172-6/+7
|
* Support loading OUT_DIR from cargo check at launchEmil Lauridsen2020-03-172-0/+8
|
* Separate persistent mutable state from configAleksey Kladov2020-03-167-65/+80
| | | | | That way, we clearly see which things are not change, and we also clearly see which things are persistent.
* :arrow_up: npmAleksey Kladov2020-03-162-22/+22
|
* Merge #3534bors[bot]2020-03-1612-147/+435
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3534: Feature: vscode impl nightlies download and installation r=Veetaha a=Veetaha I need to test things more, but the core shape of the code is quite well-formed. The main problem is that we save the release date only for nightlies and there are no means to get the release date of the stable extension (i.e. for this we would need to consult the github releases via a network request, or we would need to somehow save this info into package.json or any other file accessible from the extension code during the deployment step, but this will be very hard I guess). So there is an invariant that the users can install nightly only from our extension and they can't do it manually, because when installing the nightly `.vsix` we actually save its release date to `globalState` Closes: #3402 TODO: - [x] More manual tests and documentation cc @matklad @lnicola Co-authored-by: Veetaha <[email protected]> Co-authored-by: Veetaha <[email protected]>
| * vscode-postrefactor: migrate to arrow functionsVeetaha2020-03-161-2/+2
| |
| * vscode-postrefactor: fix syntax errorVeetaha2020-03-161-1/+1
| |
| * vscode-postrefactor: prefer arrow functionsVeetaha2020-03-161-1/+1
| |
| * vscode: sync package-lock.json version with package.jsonVeetaha2020-03-141-1/+1
| |
| * vscode-postrefactor: more logging and better error handlingVeetaha2020-03-143-23/+31
| |
| * vscode-postrefactor: enforcing more reentrancyVeetaha2020-03-142-4/+7
| |
| * vscode-postrefactor: minor config refactoringsVeetaha2020-03-142-4/+5
| |
| * vscode-postrefactor: unhandled promise rejections shall not pass 2Veetaha2020-03-141-1/+1
| |
| * vscode-postrefactor: add achtung commentVeetaha2020-03-141-0/+4
| |
| * vscode-postrefactor: remove remainders of debug loggingVeetaha2020-03-141-1/+0
| |
| * vscode-postrefactor: unhandled promise rejections shall not passVeetaha2020-03-141-1/+1
| |
| * vscode-postrefactor: compare dates by value, not by referenceVeetaha2020-03-141-2/+2
| |
| * vscode-postrefactor: eliminate my-mistake floating promise @matkladVeetaha2020-03-141-1/+1
| |
| * vscode-postrefactor: global storagesVeetaha2020-03-141-20/+19
| |
| * vscode: put comma backVeetaha2020-03-141-1/+1
| |
| * vscode: make bailing out on custom serverPath more evidentVeetaha2020-03-142-10/+8
| |
| * vscode: npm run fixVeetaha2020-03-142-4/+4
| |
| * vscode: amend server installation logic to account for nightliesVeetaha2020-03-143-52/+57
| |
| * vscode: add nightly extension installation logicVeetaha2020-03-141-0/+131
| |
| * vscode: prepare config for nightliesVeetaha2020-03-141-15/+96
| |
| * vscode: prepare package.json for nightliesVeetaha2020-03-142-3/+16
| |
| * vscode: get release date from release infoVeetaha2020-03-142-14/+7
| |
| * vscode-prerefactor: add some utility functionsVeetaha2020-03-141-6/+63
| |
| * vscode-prerefactor: merge two files into downloads.tsVeetaha2020-03-142-50/+46
| |
* | Merge #3540bors[bot]2020-03-162-8/+11
|\ \ | | | | | | | | | | | | | | | | | | | | | 3540: Swtches to rust SSR query check r=matklad a=mikhail-m1 related to #3186 Co-authored-by: Mikhail Modin <[email protected]>
| * | Swtches to rust SSR query checkMikhail Modin2020-03-152-8/+11
| | |
* | | Merge #3561 #3577bors[bot]2020-03-134-3/+24
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3561: feat: add debug code lens r=matklad a=hdevalke Refs #3539 3577: Protect against infinite macro expansion in def collector r=edwin0cheng a=flodiebold Something I noticed while trying to make macro expansion more resilient against errors. There was a test for this, but it wasn't actually working because the first recursive expansion failed. (The comma...) Even with this limit, that test (when fixed) still takes some time to pass because of the exponential growth of the expansions, so I disabled it and added a different one without growth. CC @edwin0cheng Co-authored-by: Hannes De Valkeneer <[email protected]> Co-authored-by: hdevalke <[email protected]> Co-authored-by: Florian Diebold <[email protected]>
| * | Update editors/code/src/config.tshdevalke2020-03-121-1/+0
| | | | | | | | | Co-Authored-By: Veetaha <[email protected]>
| * | fixup! feat: add debug code lensHannes De Valkeneer2020-03-123-3/+2
| | | | | | | | | | | | autodetect vscode-lldb
| * | fixup! feat: add debug code lensHannes De Valkeneer2020-03-121-6/+1
| | | | | | | | | | | | avoid repetition of `--no-run`
| * | fixup! feat: add debug code lensHannes De Valkeneer2020-03-121-2/+1
| | |
| * | feat: add debug code lensHannes De Valkeneer2020-03-114-3/+32
| | | | | | | | | | | | Refs #3539
* | | Simpler deserializationAleksey Kladov2020-03-121-1/+6
| | |
* | | Merge #3543bors[bot]2020-03-124-8/+25
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3543: Parameter inlay hint separate from variable type inlay? #2876 r=matklad a=slyngbaek Add setting to allow enabling either type inlay hints or parameter inlay hints or both. Group the the max inlay hint length option into the object. - Add a new type for the inlayHint options. - Add tests to ensure the inlays don't happen on the server side Co-authored-by: Steffen Lyngbaek <[email protected]>
| * | | Make maxLength nullable againSteffen Lyngbaek2020-03-122-3/+6
| | | |
| * | | Switch from Vec<InlayKind> to object with propsSteffen Lyngbaek2020-03-124-29/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Instead of a single object type, use several individual nested types to allow toggling from the settings GUI - Remove unused struct definitions - Install and test that the toggles work
| * | | Address Issues from GithubSteffen Lyngbaek2020-03-101-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Updated naming of config - Define struct in ra_ide and use remote derive in rust-analyzer/config - Make inlayConfig type more flexible to support more future types - Remove constructor only used in tests
| * | | Parameter inlay hint separate from variable type inlay? #2876Steffen Lyngbaek2020-03-104-8/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add setting to allow enabling either type inlay hints or parameter inlay hints or both. Group the the max inlay hint length option into the object. - Add a new type for the inlayHint options. - Add tests to ensure the inlays don't happen on the server side
* | | | settings: rust-analyzer.cargo-watch.enable: clarify that the setting enables ↵Matthias Krüger2020-03-111-1/+1
| |/ / |/| | | | | | | | the cargo-watch command and not "cargo check"
* | | Merge #3549bors[bot]2020-03-113-0/+7
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3549: Implement env! macro r=matklad a=edwin0cheng This PR implements `env!` macro by adding following things: 1. Added `additional_outdirs` settings in vscode. (naming to be bikeshed) 2. Added `ExternSourceId` which is a wrapping for SourceRootId but only used in extern sources. It is because `OUT_DIR` is not belonged to any crate and we have to access it behind an `AstDatabase`. 3. This PR does not implement the `OUT_DIR` parsing from `cargo check`. I don't have general design about this, @kiljacken could we reuse some cargo watch code for that ? ~~Block on [#3536]~~ PS: After this PR , we (kind of) completed the `include!(concat!(env!('OUT_DIR'), "foo.rs")` macro call combo. [Exodia Obliterate!](https://www.youtube.com/watch?v=RfqNH3FoGi0) Co-authored-by: Edwin Cheng <[email protected]>