Commit graph

8575 commits

Author SHA1 Message Date
Aleksey Kladov
3d1cb5e20f Simplify extension tag sniffing 2020-03-19 09:37:03 +01:00
bors[bot]
aca3c3086e
Merge #3629
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 <aleksey.kladov@gmail.com>
2020-03-19 08:06:48 +00:00
Aleksey Kladov
fb6e655de8 Rewrite auto-update
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).
2020-03-19 09:04:59 +01:00
Aleksey Kladov
55336722b3
Merge pull request #3646 from Veetaha/feature/revive-npm-audit
cicd: revive npm audit
2020-03-18 23:32:16 +01:00
bors[bot]
21a35b49ee
Merge #3645
3645: cargo update r=matklad a=CAD97

Closes #3644 as well.

Would setting up [dependabot](https://dependabot.com/) make sense for this repository?

Co-authored-by: CAD97 <cad97@cad97.com>
2020-03-18 21:24:23 +00:00
CAD97
27d9516105 cargo update 2020-03-18 17:17:45 -04:00
veetaha
e1e41c8b32 cicd: revive npm audit 2020-03-18 23:15:48 +02:00
bors[bot]
b376cabe5e
Merge #3643
3643: Use match_ast r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-18 19:52:10 +00:00
Aleksey Kladov
0bf903411c Use match_ast 2020-03-18 20:51:47 +01:00
bors[bot]
b28d411866
Merge #3640
3640: Merge imports assist r=matklad a=matklad

Work towards #2220



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-18 18:35:11 +00:00
Aleksey Kladov
3f6dc20d3c Merge imports assist
Work towards #2220
2020-03-18 19:34:47 +01:00
Aleksey Kladov
4e50efcfc5 Strongly-typed generic methods for editing nodes 2020-03-18 19:34:47 +01:00
bors[bot]
12c952f801
Merge #3637
3637: Update dependencies and fix minimist CVE r=matklad a=darinmorrison

This PR just updates some dependencies and also regenerates the `package-lock.json` to fix the recent [minimist CVE](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7598) (a dependency of eslint).

Co-authored-by: Darin Morrison <darinmorrison@users.noreply.github.com>
2020-03-18 16:38:17 +00:00
Darin Morrison
482a7c2262 Update deps; regen lock file; fix minimist CVE 2020-03-18 10:36:11 -06:00
bors[bot]
198510760d
Merge #3636
3636: Reduce visibility r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-18 15:49:08 +00:00
Aleksey Kladov
3c88ef76d6 Reduce visibility 2020-03-18 16:48:45 +01:00
bors[bot]
f0a1b64d7e
Merge #3634
3634: Make xtask dist more reliable r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-18 12:28:28 +00:00
Aleksey Kladov
e511b3280f Make xtask dist more reliable 2020-03-18 13:23:44 +01:00
bors[bot]
2a3543d195
Merge #3630
3630: Feature: remove dat fixme r=matklad a=Veetaha



Co-authored-by: veetaha <veetaha2@gmail.com>
2020-03-18 08:44:46 +00:00
Aleksey Kladov
a8ddea8d1c Don't filter release by fork
This syntax does not work for some reason

https://github.com/rust-analyzer/rust-analyzer/runs/515231288?check_suite_focus=true
2020-03-18 09:43:49 +01:00
veetaha
4d83961acb ra_hir_def: remove dat fixme 2020-03-18 02:35:49 +02:00
Aleksey Kladov
46c618f7d9 Disable npm audit, as it blocks unrelated PR without a way to fix
https://github.com/rust-analyzer/rust-analyzer/pull/3582#issuecomment-600107117
2020-03-17 15:43:14 +01:00
Aleksey Kladov
ec1312ef38
Merge pull request #3582 from kiljacken/out-dir-from-check
Update OUT_DIR based on `cargo check` output
2020-03-17 15:42:02 +01:00
Emil Lauridsen
2dd887de47 Use dyn-ref instead of impl to impact compile times the least 2020-03-17 14:56:53 +01:00
Emil Lauridsen
5af81b8456 Slight readablity improvement 2020-03-17 14:56:14 +01:00
Emil Lauridsen
e154132c91 Remove outDirOverrides 2020-03-17 14:55:44 +01:00
Emil Lauridsen
f84deffd72 Support loading OUT_DIR for CLI runs 2020-03-17 14:47:05 +01:00
Emil Lauridsen
9e7dbb1abd Remove unused config from VSCode ext 2020-03-17 14:47:05 +01:00
Emil Lauridsen
4fb79f2ca0 Support specifying OUT_DIR in json project 2020-03-17 14:47:05 +01:00
Emil Lauridsen
f5a2fcf8f5 Change existing OUT_DIR override config to make use of new infrastructure 2020-03-17 14:47:05 +01:00
Emil Lauridsen
33c6c7abc6 Support loading OUT_DIR from cargo check at launch 2020-03-17 14:47:05 +01:00
bors[bot]
2720e2374b
Merge #3626
3626: Check that no file contains trailing ws r=matklad a=matklad

rustfmt allows trailing spaces in string literals unfortunately.



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-17 10:43:14 +00:00
Aleksey Kladov
de7662c852 Check that no file contains trailing ws
rustfmt allows trailing spaces in string literals unfortunately.
2020-03-17 11:42:54 +01:00
bors[bot]
089c554770
Merge #3625
3625: Fix typo r=flodiebold a=phynalle

It doesn't need any description! I just fixed a typo. haha

Co-authored-by: phynalle <phynalism@gmail.com>
2020-03-17 10:22:59 +00:00
phynalle
cafacb74aa Fix typo 2020-03-17 19:15:30 +09:00
Aleksey Kladov
96f19c3af9
Merge pull request #3613 from bjorn3/patch-1
Fix cargo registry caching for builds
2020-03-17 11:14:25 +01:00
bors[bot]
6aa432d86b
Merge #3580
3580: More error-resilient MBE expansion r=matklad a=flodiebold

This is the beginning of an attempt to make macro-by-example expansion more resilient, so that we still get an expansion even if no rule exactly matches, with the goal to make completion work better in macro calls.

 The general idea is to make everything return `(T, Option<ExpandError>)` instead of `Result<T, ExpandError>`; and then to try each macro arm in turn, and somehow choose the 'best' matching rule if none matches without errors. Finding that 'best' match isn't done yet; I'm currently counting how many tokens were consumed from the args before an error, but it also needs to take into account whether there were further patterns that had nothing to match.

I'll continue this later, but I'm interested whether you think this is the right path, @matklad & @edwin0cheng.

Co-authored-by: Florian Diebold <florian.diebold@freiheit.com>
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2020-03-17 09:41:30 +00:00
bors[bot]
cf4ae9aa59
Merge #3624
3624: Tidier tidy checks r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-17 09:29:29 +00:00
Aleksey Kladov
8f6efa01b2 Tidier tidy checks 2020-03-17 10:27:09 +01:00
Aleksey Kladov
f755486ffc
Merge pull request #3618 from swarnimarun/patch-1
Gate release action to rust-analyzer owner
2020-03-17 09:41:53 +01:00
Aleksey Kladov
a350dff4cf
Update .github/workflows/release.yaml
Co-Authored-By: Florian Diebold <flodiebold@googlemail.com>
2020-03-17 09:41:27 +01:00
bors[bot]
57562284ab
Merge #3616
3616: Update dependencies, removing rustc_version r=matklad a=kjeremy



Co-authored-by: kjeremy <kjeremy@gmail.com>
2020-03-17 08:17:21 +00:00
Swarnim Arun
a9300934f9
Gate release action to rust-analyzer owner 2020-03-17 03:09:02 +05:30
bors[bot]
7dbd040c26
Merge #3614
3614: Separate persistent mutable state from config r=matklad a=matklad

That way, we clearly see which things are not change, and we also
clearly see which things are persistent.

r? @Veetaha 

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-16 21:02:37 +00:00
Aleksey Kladov
ae662617a2 Separate persistent mutable state from config
That way, we clearly see which things are not change, and we also
clearly see which things are persistent.
2020-03-16 22:02:11 +01:00
Aleksey Kladov
2e9b6320e6 Fix audit caching better 2020-03-16 22:02:11 +01:00
kjeremy
8e6c1087b1 Update dependencies, removing rustc_version 2020-03-16 16:45:32 -04:00
bjorn3
c98fa45d05
Fix cargo registry caching for builds 2020-03-16 18:46:33 +01:00
Florian Diebold
6c20d7e979 Small fixes 2020-03-16 18:46:08 +01:00
Florian Diebold
32dce75747 Some more refactoring 2020-03-16 18:38:19 +01:00