aboutsummaryrefslogtreecommitdiff
path: root/editors/code/package.json
Commit message (Collapse)AuthorAgeFilesLines
* :arrow_up: npmAleksey Kladov2020-03-191-1/+1
|
* Simplify extension tag sniffingAleksey Kladov2020-03-191-2/+2
|
* Merge #3629bors[bot]2020-03-191-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-181-3/+3
|/
* Remove outDirOverridesEmil Lauridsen2020-03-171-5/+0
|
* Change existing OUT_DIR override config to make use of new infrastructureEmil Lauridsen2020-03-171-5/+5
|
* Support loading OUT_DIR from cargo check at launchEmil Lauridsen2020-03-171-0/+5
|
* :arrow_up: npmAleksey Kladov2020-03-161-3/+3
|
* vscode: prepare package.json for nightliesVeetaha2020-03-141-2/+15
|
* Merge #3543bors[bot]2020-03-121-3/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | 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-121-1/+4
| |
| * Switch from Vec<InlayKind> to object with propsSteffen Lyngbaek2020-03-121-21/+11
| | | | | | | | | | | | | | - 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
| * Parameter inlay hint separate from variable type inlay? #2876Steffen Lyngbaek2020-03-101-4/+16
| | | | | | | | | | | | | | | | | | 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-111-0/+5
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
| * Add additional_outdirs in configEdwin Cheng2020-03-101-0/+5
| |
* | Force latest stablekjeremy2020-03-101-2/+2
|/
* Merge #3514bors[bot]2020-03-091-0/+5
|\ | | | | | | | | | | | | | | | | | | | | | | 3514: vscode: askBeforeDownload option r=matklad a=Veetaha This is a small step towards #3402, also implements my proposal stated in #3403 Also renamed `BinarySource` to `ArtifactSource` in anticipation of nightlies installation that requires downloading not a binary itself but `.vsix` package, thus generalized to `artifact` term. @matklad @lnicola Co-authored-by: Veetaha <[email protected]>
| * vscode: groupd updates-related config under `updates` section as per @matkladVeetaha2020-03-091-1/+1
| |
| * vscode: rename alwaysDownloadServer -> askBeforeDownloadVeetaha2020-03-081-3/+3
| | | | | | | | | | | | | | | | | | | | | | The new name seems much simpler and it doesn't limit this config value only to downloading the server binary. Thus we wouldn't need to create another config properties to handle other downloads whatsoever. Anyway, I believe (heuristically) that most of the users would want to set "askBeforeDownload": false once and never bother clicking on the notification again (because otherwise there is no big point in installing rust-analyzer if it cannot install the server)
| * vscode: contribute "alwaysDownloadServer" option to configVeetaha2020-03-071-0/+5
| |
* | Use markdown description in vscodeJulien Roncaglia2020-03-081-9/+9
|/
* :arrow_up: npm depsAleksey Kladov2020-03-061-1/+1
|
* Don't creat public APIs with typosAleksey Kladov2020-03-061-1/+1
|
* Concise mode for parameter hintsAleksey Kladov2020-03-061-0/+4
| | | | | This works around VS Code bug where it tries to cram everything in a tiny popup, and brings experience closer to Intellij.
* Feature flag for arg snippetsAleksey Kladov2020-03-061-0/+4
|
* Update code dependenciesJeremy Kolb2020-03-031-9/+9
|
* Minimal viable metaAleksey Kladov2020-03-021-1/+6
|
* Fix union classificationAleksey Kladov2020-02-281-2/+0
|
* Merge #3363bors[bot]2020-02-281-20/+64
|\ | | | | | | | | | | | | | | | | | | | | 3363: Cleanup highlighting tags r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Cleanup highlighting tagsAleksey Kladov2020-02-281-17/+70
| |
| * add more tagsAleksey Kladov2020-02-281-9/+0
| |
* | removing ctrl+r key binding fixes #2733Jason Williams2020-02-281-5/+0
| |
* | vscode: added feature flags for better short-term uxVeetaha2020-02-271-1/+23
|/
* Map builtinAleksey Kladov2020-02-271-0/+6
|
* Set attr scopeAleksey Kladov2020-02-271-0/+6
|
* Map unsafe keywordAleksey Kladov2020-02-271-0/+6
|
* Fix styleAleksey Kladov2020-02-271-1/+1
|
* Actually gate CI on eslintAleksey Kladov2020-02-271-1/+2
|
* Merge #3308bors[bot]2020-02-271-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3308: vscode: fix vscode-vim keybindings conflict r=matklad a=Veetaha Closes #3013 I hope vscode-vim extension overrides the `type` command so that it prevents some keypresses to reach the text document editor. It conflicts with our `onEnter` keybinding that is used to support automatic doc comments extending and indentation insertion. The VSCode-native way to implement this would be to use regular expressions, but as per matklad it is considered not acceptable for the language server. Thus we implement it via a `Enter` keybinding that invokes our `onEnter` command which does it via the language-server. At the end of the day we may only apply ad hoc workarounds for conflicting extensions. But vscode has another bug for that. You either cannot use parantheses in `when` condition of a keybinding or it just malfunctions. See an issue about that here: https://github.com/microsoft/vscode/issues/91473 To get the ultimate context, follow this [zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Enhanced.20typing) Co-authored-by: Veetaha <[email protected]>
| * vscode: fix vscode-vim keybindings conflictVeetaha2020-02-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vscode-vim extension overrides the `type` command so that it prevents some keypresses to reach the text document editor. It conflicts with our `onEnter` keybinding that is used to support automatic doc comments extending and indentation insertion. The VSCode-native way to implement this would be to use regular expressions, but as per matklad it is considered not acceptable for the language server. Thus we implement it via a `Enter` keybinding that invokes our `onEnter` command which sends a request to rust-analyzer process and applies the appropriate source change recieved from it. At the end of the day we may only apply ad hoc workarounds for conflicting extensions. But vscode has another bug for that. You either cannot use parantheses in `when` condition of a keybinding or it just malfunctions. See an issue about that here: https://github.com/microsoft/vscode/issues/91473 To get the ultimate context, follow this zulip thread: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Enhanced.20typing
* | Color constantsAleksey Kladov2020-02-271-0/+9
| |
* | Better highlightign APIAleksey Kladov2020-02-271-0/+19
| |
* | wipAleksey Kladov2020-02-261-0/+14
| |
* | Config to switch to semantic tokensAleksey Kladov2020-02-261-0/+5
| |
* | Merge pull request #3321 from kjeremy/semantic-clientAleksey Kladov2020-02-261-0/+1
|\ \ | | | | | | Enable SemanticTokens on the client
| * | Enable SemanticTokens on the clientJeremy Kolb2020-02-261-0/+1
| |/ | | | | | | This will crash the extension on stable and insiders without the "--enable-proposed-api matklad.rust-analyzer" command line switch.
* / Remove unnecessary depAleksey Kladov2020-02-261-2/+0
|/
* vscode: bump TypeScript versionVeetaha2020-02-241-1/+1
|