Commit Graph

43 Commits

Author SHA1 Message Date
kjeremy c3045c68a9 relative-path 1.0 2019-10-17 13:08:33 -04:00
Aleksey Kladov 1555a1aa0d remove one more dependency on source roots 2019-10-14 15:15:47 +03:00
Aleksey Kladov 355419d404 use slightly more idiomatic api for cfg 2019-10-08 14:22:49 +03:00
uHOOCCOOHu 1067a1c5f6 Read default cfgs from rustc 2019-10-03 02:28:03 +08:00
Alexander Andreev fdbd6bb11a Added test for check doc strings in crates.
#1856
2019-09-30 11:58:53 +03:00
Aleksey Kladov 3c68da792b don't break parser error recovery in presence of macros
Parser has the invariant that `{}` are balanced.
Previous code tried (unsucesfuly) maintain the same invariant for
`$()` as well, but it was done in a rather ad-hoc manner: it's not at
all obvious that it is possible to maintain both invariants!
2019-09-12 12:38:07 +03:00
Aleksey Kladov e5a8093dd4 document module 2019-09-09 17:31:11 +03:00
Aleksey Kladov 28df377759 add option to disable notify 2019-09-06 17:21:29 +03:00
Aleksey Kladov ee932d464b ⬆️ vfs 2019-08-25 13:13:08 +03:00
Aleksey Kladov 69bbe79c50 implement feature flags 2019-08-22 15:07:31 +03:00
Aleksey Kladov 34203256bf introduce ra_vfs_glob crate
It manages exclusion rules for the vfs crate
2019-08-06 14:28:31 +02:00
Aleksey Kladov 0e4a542cfb rename 2019-08-06 10:50:32 +02:00
Shotaro Yamada a426de60ad Remove unused dependencies 2019-07-09 00:28:00 +09:00
Aleksey Kladov 1834bae5b8 allow rustfmt to reorder imports
This wasn't a right decision in the first place, the feature flag was
broken in the last rustfmt release, and syntax highlighting of imports
is more important anyway
2019-07-04 23:09:09 +03:00
Aleksey Kladov fa55b72c54 move ra_prof dep where it belongs 2019-06-26 13:07:26 +03:00
Aleksey Kladov d621533f15 add cpuprofile to ra_prof
Now, one can use `let _p = ra_prof::cpu_profiler()` to capture profile
of a block of code.

This is not an out of the box experience, as that relies on gperfools

See the docs on https://github.com/AtheMathmo/cpuprofiler for more!
2019-06-26 11:11:28 +03:00
Aleksey Kladov 6314e62cfb add analysis-bench to benchmark incremental analysis
Can be used like this:

```
$ cargo run --release -p ra_cli -- \
  analysis-bench ../chalk/ \
  --complete ../chalk/chalk-engine/src/logic.rs:94:0

loading: 225.970093ms

from scratch:   8.492373325s
no change:      445.265µs
trivial change: 95.631242ms
```

Or like this:

```
$ cargo run --release -p ra_cli -- \
  analysis-bench ../chalk/ \
  --highlight ../chalk/chalk-engine/src/logic.rs

loading: 209.873484ms

from scratch:   9.504916942s
no change:      7.731119ms
trivial change: 124.984039ms
```

"from scratch" includes initial analysis of the relevant bits of the
project

"no change" just asks the same question for the second time. It
measures overhead on assembling the answer outside of salsa.

"trivial change" doesn't do an actual salsa change, it just advances
the revision. This test how fast is salsa at validating things.
2019-06-16 19:45:05 +03:00
Aleksey Kladov b0be4207d0 reuse AnalysisHost in batch analysis 2019-06-15 16:29:23 +03:00
Muhammad Mominul Huque ebb40c7f87 cargo format 2019-06-15 13:37:15 +06:00
Muhammad Mominul Huque f032eeb05f Get rid of failure: ra_batch ra_cli 2019-06-15 13:24:02 +06:00
Aleksey Kladov 15668119de make LRU_CAP configurable for batch db 2019-06-12 13:25:30 +03:00
Aleksey Kladov fc2658b074 use salsa's LRU for syntax trees 2019-06-12 13:25:30 +03:00
Alan Du 40424d4222 Fix clippy::identity_conversion 2019-06-04 18:05:07 -04:00
Aleksey Kladov 5af9e475f4 add AstDatabase 2019-06-02 12:27:36 +03:00
Aleksey Kladov 6b993a9760 migrate to salsas interning 2019-04-09 22:51:22 +03:00
pcpthm 0010d62cad Make robust about target directory 2019-04-04 18:57:10 +09:00
Aleksey Kladov 3f0cf6ebe1 rename persistent hir database -> def database 2019-03-23 15:44:24 +03:00
Ville Penttinen c6d6e6c625 Move actual include logic to ProjectRoot
This way the two IncludeRustFiles implementations can simply call the
ProjectRoots' methods, so that the include logic is in one place.
2019-03-21 10:43:47 +02:00
Ville Penttinen e32462c6d5 Improve filtering of file roots
`ProjectWorkspace::to_roots` now returns a new `ProjectRoot` which contains
information regarding whether or not the given path is part of the current
workspace or an external dependency. This information can then be used in
`ra_batch` and `ra_lsp_server` to implement more advanced filtering. This allows
us to filter some unnecessary folders from external dependencies such as tests,
examples and benches.
2019-03-20 11:55:38 +02:00
Ville Penttinen e70e2361b6 Upgrade ra_vfs to use new Filtering
Currently this matches the previous filtering, meaning all roots are filtered
using the same rules.
2019-03-18 20:53:08 +02:00
David Wood 614dd3c347 Rename and change add_roots to return a Vec. 2019-03-07 01:05:07 +01:00
David Wood 00d927a188 Initial implementation of project-lock.json.
This commit adds a initial implementation of project-lock.json, a build
system agnostic method of specifying the crate graph and roots.
2019-03-07 01:05:03 +01:00
Aleksey Kladov 1bdd935e91 switch to crates.io vfs 2019-02-18 16:43:16 +03:00
Aleksey Kladov bb393e2d11 fix-tests 2019-02-17 21:05:33 +03:00
Aleksey Kladov bf352cd251 automatically wait for worker threads
closes #817
2019-02-14 21:11:07 +03:00
Ville Penttinen f7a78b2846 Remove call to canonicalize in BatchDatabase::load_cargo
Instead of using canonicalize, we now join the given path to
`std::env::current_dir()`, which either replaces the path, if the given path is
absolute, or joins the paths.

This fixes #821.
2019-02-14 10:57:06 +02:00
Ville Penttinen 710975ecd8 Fix typo in Cargo.toml authors
Fixes typo introduced in #782
2019-02-11 10:20:04 +02:00
Ville Penttinen ab3d231b1d Update authors field in Cargo.tomls to "rust-analyzer developers"
This closes #777
2019-02-11 08:55:35 +02:00
Florian Diebold b18863f987 Clean up a bit 2019-02-10 11:48:59 +01:00
Florian Diebold 6f81a372db Add a smoke test for ra_batch 2019-02-10 11:44:53 +01:00
Florian Diebold 6964a88e8c Add an ra_cli command that analyses all crates in the current workspace
... and prints various stats about how many expressions have a type etc.
2019-02-10 10:56:58 +01:00
Florian Diebold 43e52ac9e2 Implement BatchDatabase construction 2019-02-10 10:56:58 +01:00
Florian Diebold 15224dfcd5 Add new crate 2019-02-10 10:56:58 +01:00