Commit graph

1049 commits

Author SHA1 Message Date
bors[bot]
b81caed43f Merge #1408
1408: Associated type basics & Deref support r=matklad a=flodiebold

This adds the necessary Chalk integration to handle associated types and uses it to implement support for `Deref` in the `*` operator and autoderef; so e.g. dot completions through an `Arc` work now.

It doesn't yet implement resolution of associated types in paths, though. Also, there's a big FIXME about handling variables in the solution we get from Chalk correctly.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-06-16 12:00:41 +00:00
Muhammad Mominul Huque
91510db6d8
Fall down of failures 2019-06-16 00:48:50 +06:00
Florian Diebold
49489dc20c Add basic infrastructure for assoc type projection 2019-06-15 18:21:23 +02:00
Aleksey Kladov
b0be4207d0 reuse AnalysisHost in batch analysis 2019-06-15 16:29:23 +03:00
Muhammad Mominul Huque
f032eeb05f
Get rid of failure: ra_batch ra_cli 2019-06-15 13:24:02 +06:00
Muhammad Mominul Huque
9709bd39ca
Get rid of failure: ra_lsp_server & ra_project_model 2019-06-15 02:42:56 +06:00
Muhammad Mominul Huque
a931fb1ef6
Get rid of failure: gen_lsp_server 2019-06-15 01:03:17 +06:00
Aleksey Kladov
fc2658b074 use salsa's LRU for syntax trees 2019-06-12 13:25:30 +03:00
bors[bot]
3f5f9f0560 Merge #1391
1391: rename tools -> ra_tools r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-06-10 22:49:51 +00:00
Aleksey Kladov
10d34532e3 rename tools -> ra_tools
This should help with caching on CI I hope (see .travis.yml
before_cache)
2019-06-11 01:47:37 +03:00
Aleksey Kladov
156b7ee842 use single version of either in hir 2019-06-11 01:26:20 +03:00
Aleksey Kladov
9d7cb8ce80 ⬆️ salsa 2019-06-07 09:44:28 +03:00
Aleksey Kladov
bab72fd18d ⬆️ deps 2019-06-05 22:49:42 +03:00
Aleksey Kladov
b3b096234a switch to panic-safe salsa 2019-06-04 13:30:07 +03:00
Aleksey Kladov
5264711b5d add couple of debug utils 2019-06-04 00:27:49 +03:00
Aleksey Kladov
97158f5c8a add built-in types to scopes 2019-05-30 15:03:58 +03:00
Aleksey Kladov
54f77ad68d switch to upstream salsa 2019-05-30 13:05:09 +03:00
Aleksey Kladov
18ed351747 ⬆️ parking_lot 2019-05-30 12:02:30 +03:00
Pascal Hertleif
43d5a49653
More clever highlighting, incl draft for structs 2019-05-27 11:26:35 +02:00
Edwin Cheng
c0dc14ba5a Add Either dep 2019-05-26 20:10:05 +08:00
kjeremy
60cdd95e17 cargo update 2019-05-23 15:15:35 -04:00
Laurențiu Nicola
f1ec88cc56 Improve highlighting of name refs 2019-05-23 15:31:35 +03:00
Laurențiu Nicola
444e52e519 Move NameRef classification logic out of reference_definition 2019-05-23 12:32:47 +03:00
Aleksey Kladov
6fed943bd2 better profilig 2019-05-22 00:00:58 +03:00
Florian Diebold
f613c48d2e Use fuel branch for Chalk
This makes sure we don't take too long in trait solving.
2019-05-21 20:40:29 +02:00
Aleksey Kladov
26463f189f publish gen_lsp_server 0.2 2019-05-21 18:57:33 +03:00
Aleksey Kladov
0efb5364c3 sort hash maps for tests 2019-05-21 14:14:31 +03:00
Aleksey Kladov
507c97a18c ⬆️ insta 2019-05-21 13:21:54 +03:00
Aleksey Kladov
e29a58995b ⬆️ text_unit 2019-05-15 19:19:05 +03:00
Jeremy Kolb
e2b3862c0b cargo update 2019-05-09 08:45:01 -04:00
Aleksey Kladov
1667b5cf52 switch to once_cell from lazy_static 2019-05-07 20:54:33 +03:00
Aleksey Kladov
cdca18de9a ⬆️ deps 2019-05-04 23:56:21 +03:00
Florian Diebold
0bcf47b22b Update Chalk 2019-05-04 18:18:30 +02:00
Florian Diebold
b9c0c2abb7 Chalk integration
- add proper canonicalization logic
 - add conversions from/to Chalk IR
2019-05-04 18:18:30 +02:00
Edwin Cheng
c55a2dbc1d Fix more bugs 2019-04-26 02:03:56 +08:00
Edwin Cheng
299d97b6d9 Add handling token seperator in mbe 2019-04-26 02:03:55 +08:00
kjeremy
61fe117ad8 Update some deps 2019-04-24 11:39:52 -04:00
Aleksey Kladov
7cc845e88d start structured editing API 2019-04-21 20:51:20 +03:00
Aleksey Kladov
47672726d8 ⬆️ lsp 2019-04-21 15:17:22 +03:00
Aleksey Kladov
fa12ed2b8f switch to official extend selection API 2019-04-21 12:13:48 +03:00
Aleksey Kladov
16256ee2c6 ⬆️ vfs 2019-04-17 12:34:25 +03:00
Aleksey Kladov
c4a5aa45dc add a couple of profiling points 2019-04-15 01:10:07 +03:00
Aleksey Kladov
0b3d407e98 ⬆️ vfs 2019-04-12 23:35:12 +03:00
Aleksey Kladov
faf526e021 migrate to untyped rowan 2019-04-09 10:26:51 +03:00
kjeremy
1af7ae506a Update deps 2019-04-05 10:14:02 -04:00
Edwin Cheng
c23408751c Add multi-byte token support in tkn tree to ast 2019-04-05 03:39:54 +08:00
bors[bot]
c083515eec Merge #1106
1106: ⬆️ salsa r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-04-04 07:03:18 +00:00
Aleksey Kladov
afd64756dd ⬆️ salsa 2019-04-04 10:02:53 +03:00
bors[bot]
c6c88070c4 Merge #1068
1068: profiling crate first draft r=matklad a=pasa

I've made this first draft for #961 
Could you look at it? Is this something what you are looking for?
It has lack of tests. I can't figure out how to test stderr output in rust right now. Do you have some clues?
Additionally I'm thinking about to implement procedural  macros to annotate methods with this profiler. Will it be helpful?



Co-authored-by: Sergey Parilin <sergey.parilin@fxdd.com>
2019-04-03 09:09:11 +00:00
Sergey Parilin
b74449e995 Merge remote-tracking branch 'upstream/master' into issue961_profiling 2019-04-02 17:55:14 +03:00
Sergey Parilin
9b73f80959 PR issuse resolved 2019-04-02 17:52:04 +03:00
Aleksey Kladov
9e213385c9 switch to new rowan 2019-04-01 12:06:24 +03:00
Sergey Parilin
58224bc659 profiling crate first draft 2019-03-27 18:23:26 +03:00
Aleksey Kladov
e8477f3260 update salsa some more 2019-03-27 16:31:13 +03:00
Aleksey Kladov
3419fe297a ⬆️ salsa 2019-03-27 13:38:33 +03:00
Aleksey Kladov
274990bc83 ⬆️ vfs 2019-03-26 13:54:23 +03:00
Aleksey Kladov
65a5c6859f ⬆️ deps 2019-03-25 14:12:03 +03:00
Sergey Parilin
36cb58f76d structure moved to ra_ide_api
ra_ide_api_light removed completely
2019-03-25 11:41:21 +03:00
Wilco Kusee
497934a7b4 Disable fork feature for proptest 2019-03-23 08:57:07 +01:00
bors[bot]
15189bc724 Merge #1021
1021: Wasm dependencies r=matklad a=detrumi

As a first step towards running RA on WASM (see #1007), this tweaks the dependencies somewhat so that projects built using `wasm-pack` can use `ra_ide_api` as a dependency.

There were two problems:
- use of undeclared type or module `MmapInner`
This error occurred because of the `memmap` crate, as a dependency of `fst`
Solution: specify `default-features = false` for the `fst` package (see https://github.com/BurntSushi/fst/issues/70)

- use of undeclared type or module `imp`
This happened in the `wait-timeout` crate ([which uses `Command` under the hood](https://github.com/alexcrichton/wait-timeout/issues/18)), a dependency of `rusty-fork` which is a dependency of `proptest`.
Solution: move `proptest` to dev-dependencies and add `#[cfg(test)]` to the `test_utils` crate.
**Edit:** Oh, that causes trouble with resolving the import when running the tests. Hmm...

Co-authored-by: Wilco Kusee <wilcokusee@gmail.com>
2019-03-22 20:22:37 +00:00
Wilco Kusee
4e6d0933cc
Disable memmap feature in fst dependency 2019-03-22 21:22:03 +01:00
Wilco Kusee
58e77660de Move join_lines to ra_ide_api 2019-03-22 17:12:31 +01:00
Sergey Parilin
fda70badf8 line_index and line_index_utils moved to ra_ide_api 2019-03-22 15:24:43 +03:00
bors[bot]
b038832795 Merge #997
997: Improve filtering of file roots r=matklad a=vipentti

`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.

Relates to discussion in #869 

Co-authored-by: Ville Penttinen <villem.penttinen@gmail.com>
2019-03-21 10:56:05 +00: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
Aleksey Kladov
b931a472c4 move extend selection from ra_ide_api_light to ra_ide_api 2019-03-20 23:52:55 +03: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
kjeremy
c2c79fae72 Update some dependencies 2019-03-15 11:36:25 -04:00
kjeremy
7481a2da0a Update some deps 2019-03-07 14:42:34 -05: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
bors[bot]
bab97f1602 Merge #941
941: ⬆️ vfs r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-03-06 11:53:05 +00:00
Aleksey Kladov
d92b449f05 ⬆️ vfs 2019-03-06 14:52:42 +03:00
kjeremy
eb3ee7b8e5 Updates 2019-03-05 10:26:36 -05:00
kjeremy
61a0d6ab8e Update deps 2019-02-27 08:58:13 -05:00
Aleksey Kladov
e9cafafbc2 add dependency on the parser 2019-02-23 16:55:18 +03:00
kjeremy
56f48ac42a Update lsp-types and backtrace 2019-02-21 10:07:14 -05:00
Aleksey Kladov
c47f9e2d37 fix compilation 2019-02-21 13:37:32 +03:00
Aleksey Kladov
d334b5a1db move parser to a separate crate 2019-02-21 13:27:45 +03:00
Aleksey Kladov
a6897a837c remove local-vfs 2019-02-18 16:43:48 +03:00
Aleksey Kladov
def7bc0ec5 drop dependency on thread_worker 2019-02-18 15:30:58 +03:00
Aleksey Kladov
9da3705191 drop unused extern crate 2019-02-18 14:39:18 +03:00
Aleksey Kladov
062aa97235 move public API to top of the file 2019-02-18 14:29:39 +03:00
Aleksey Kladov
5823d3d042 drop unused deps 2019-02-18 12:46:08 +03:00
Aleksey Kladov
93dbeef405 ⬆️ deps 2019-02-18 12:36:04 +03:00
Aleksey Kladov
bf352cd251 automatically wait for worker threads
closes #817
2019-02-14 21:11:07 +03:00
kjeremy
c15d0e0194 what goes bump in the night? 2019-02-12 11:03:28 -05:00
Andrea Pretto
5c9c0d3ae2 ra_assists: assist "providers" can produce multiple assists 2019-02-11 18:07:21 +01:00
Aleksey Kladov
9a7890c14e ⬆️ insta 2019-02-11 15:46:35 +03: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
Bernardo
c3c2e166b0 update notify with fix for hight cpu usage 2019-02-09 17:18:26 +01:00
Florian Diebold
e91a46eb0c Clean up a bit 2019-02-09 11:15:25 +01:00
Florian Diebold
50fd860471 Remove Vfs from project model 2019-02-09 11:15:25 +01:00
Florian Diebold
12c70871cc Remove SmolStr from project model 2019-02-09 11:15:25 +01:00
Florian Diebold
ddbf43b630 Move crate graph generation to ra_project_model 2019-02-09 11:15:25 +01:00
Florian Diebold
fcd615e4b7 Extract project model to separate crate 2019-02-09 11:15:25 +01:00
bors[bot]
34398a8756 Merge #766
766: Formatting code into ra_fmt r=matklad a=eulerdisk

As discussed https://github.com/rust-analyzer/rust-analyzer/pull/762#discussion_r254905885

I did only move the code without other improvements.

Co-authored-by: Andrea Pretto <eulerdisk@gmail.com>
2019-02-09 09:56:54 +00:00
robojumper
a3622eb629 Add some assist ranges 2019-02-08 22:43:13 +01:00
Andrea Pretto
02dd0cfd8c Refactor formatting code out of ra_ida_api_light into ra_fmt. 2019-02-08 18:58:27 +01:00
kjeremy
c386328ac0 cargo update 2019-02-06 10:04:48 -05:00
Aleksey Kladov
0c5fd8f7cb move assists to a separate crate 2019-02-06 17:00:00 +03:00
kjeremy
8ec4b84013 Bump insta and proptest to latest 2019-02-04 14:11:51 -05:00
kjeremy
4190bc62c4 cargo update 2019-02-04 12:55:52 -05:00
Aleksey Kladov
2d1f0b105d move test 2019-01-31 22:23:30 +02:00
Aleksey Kladov
40feacdeb9 split macros across crates 2019-01-31 22:23:30 +02:00
Aleksey Kladov
ad80a0c551 preserve token spacing 2019-01-31 22:23:30 +02:00
Aleksey Kladov
5934738854 first test sort-of passes 2019-01-31 22:23:30 +02:00
Aleksey Kladov
2def5b4e6f more expand boilerplate 2019-01-31 22:23:30 +02:00
Aleksey Kladov
ce3636798b move macros to a separate crate 2019-01-31 22:23:30 +02:00
Jeremy A. Kolb
092adc0afa Update insta
Fixes windows build
2019-01-28 12:00:01 -05:00
Aleksey Kladov
53e3e82d91 update salsa 2019-01-28 13:53:32 +03:00
Aleksey Kladov
c4ceea3417 use salsa from my repo 2019-01-27 22:57:18 +03:00
Aleksey Kladov
c7f4e3a401 show jemalloc 2019-01-27 22:57:18 +03:00
Aleksey Kladov
7801f6b50f automatically collect garbage 2019-01-27 22:57:18 +03:00
Aleksey Kladov
a1fb8efd7a ⬆️ salsa 2019-01-26 21:23:59 +03:00
Aleksey Kladov
6f862a6704 ⬆️ rowan
The new rowan uses arena allocator for red nodes which helps
slightly (5% on std completion test) with performance but should help
quite a bit with avoiding memory fragmentation.
2019-01-26 19:39:31 +03:00
Bernardo
34a34f9399 use released notifiy version, add TODO comment 2019-01-26 11:46:37 +03:00
Bernardo
f88355ccb5 refactor, put watcher with io::Worker
use `RootFilter` to filter recursive watches
untested
2019-01-26 11:46:27 +03:00
Bernardo
fb1d748a2c actually drop watcher, use parking_lot::Mutex 2019-01-26 11:46:27 +03:00
Bernardo
f181e36a44 handle recursive watching ourselves 2019-01-26 11:46:27 +03:00
Bernardo
b0f7e72c49 use notify with fix 2019-01-26 11:46:27 +03:00
Bernardo
76bf7498aa handle watched events filtering in Vfsadd is_overlayedload changed files contents in io 2019-01-26 11:46:16 +03:00
Bernardo
d032a1a4e8 complete test 2019-01-26 11:46:16 +03:00
Bernardo
1d5eaefe8a initial Watcher impl 2019-01-26 11:46:16 +03:00
Aleksey Kladov
c2474fcd38 :arrow_up deps 2019-01-25 23:38:09 +03:00
Aleksey Kladov
1fd18f020d ⬆️ salsa 2019-01-25 23:27:16 +03:00
Jeremy A. Kolb
9a97c10fda EnumVariant details for completion 2019-01-25 11:50:59 -05:00
Aleksey Kladov
8cf092d5de :arrow_up salsa 2019-01-25 15:16:50 +03:00
Hirokazu Hata
76d52be1da Bumpup lsp-types to v0.55.0 2019-01-24 02:47:03 +09:00
Aleksey Kladov
28661facf6 ⬆️ insta 2019-01-23 15:04:38 +03:00
Aleksey Kladov
7b28a15202 ⬆️ rowan 2019-01-22 23:37:03 +03:00
Aleksey Kladov
49596bbc2b ⬆️ insta 2019-01-22 01:28:57 +03:00
Florian Diebold
a252110616 Use insta for ty tests 2019-01-21 22:52:35 +01:00
Aleksey Kladov
b028472481 ⬆️ update rust 2019-01-19 15:36:58 +03:00
Aleksey Kladov
a2ca03d10b ⬆️ salsa 2019-01-17 14:11:00 +03:00
Aleksey Kladov
dd45697e53 update salsa 2019-01-15 15:06:45 +03:00
bors[bot]
f6f2e89e7a Merge #546
546: replace `assert_dbg_eq` with Insta r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-15 11:18:56 +00:00
Aleksey Kladov
d79a9b17dc switch to insta for testing 2019-01-15 14:18:24 +03:00
Aleksey Kladov
db43b44f71 update cargo_metadata 2019-01-14 16:15:25 +03:00
Aleksey Kladov
7e5ab9b78c switch to lsp-types 2019-01-14 14:32:03 +03:00
Aleksey Kladov
2d3940d0ab rename TreePtr -> TreeArc
This is much clearer about the semantics
2019-01-11 19:59:06 +03:00
Aleksey Kladov
66d7adf1cb force serde in ra_syntax 2019-01-11 13:21:18 +03:00
Aleksey Kladov
4196b65f21 dont depend on tools from lsp-server 2019-01-11 00:46:32 +03:00
Aleksey Kladov
cbeaa541aa switch CargoWorkspace to arena 2019-01-10 21:26:43 +03:00
Aleksey Kladov
495a7ea9f7 upgrade salsa 2019-01-10 13:40:43 +03:00
Aleksey Kladov
f72c031eb9 implement RefUnwindSafe 2019-01-10 13:04:04 +03:00
Aleksey Kladov
64455ad701 use unwinding for cancelation 2019-01-10 12:20:32 +03:00
Aleksey Kladov
cf20ecae9f unwind on cancel 2019-01-09 22:51:05 +03:00
Aleksey Kladov
e8815b614e nicer trailing comma handling in types 2019-01-09 19:14:21 +03:00
Georg Semmler
e7bf5dc940
Fix rev to deleted branch 2019-01-09 16:33:45 +01:00
Aleksey Kladov
5b573deb20 fix usages after rename 2019-01-08 22:33:36 +03:00
Aleksey Kladov
fa3c9ce392 fix usages after rename 2019-01-08 22:30:32 +03:00
Aleksey Kladov
f553837c1c upstream text-utils to text_unit 2019-01-08 21:50:04 +03:00
Aleksey Kladov
695294bbb9 ra_db is independent from editor 2019-01-08 21:03:42 +03:00
Aleksey Kladov
13301f284c ra_hir does not depend on ra_editor 2019-01-08 21:01:41 +03:00
Aleksey Kladov
1b82084a5f dont depend on ra_editor directly 2019-01-08 21:01:41 +03:00
Aleksey Kladov
141ab166cf switch to newer cargo-metadata 2019-01-08 19:36:09 +03:00
Aleksey Kladov
d4c8310d05 switch interner to use arena 2019-01-08 15:53:32 +03:00
Aleksey Kladov
122410d7aa switched to published version of rowan 2019-01-08 12:05:07 +03:00
Aleksey Kladov
da0b348ae9 migrate ra_hir to rowan 2.0 2019-01-08 11:28:42 +03:00
Aleksey Kladov
b73c51ff9b wrap TreePtr 2019-01-08 11:20:15 +03:00
Aleksey Kladov
55272f2023 update rowan 2019-01-08 11:20:15 +03:00
Aleksey Kladov
4608a41ad4 ⬆️ rowan 2019-01-05 00:50:56 +03:00
Aleksey Kladov
6c8e54aaee ⬆️ salsa 2019-01-04 22:31:13 +03:00
Aleksey Kladov
3fe6f422f9 remove id arena 2019-01-04 16:58:10 +03:00
Aleksey Kladov
291d578938 extract area to a crate 2019-01-04 16:58:10 +03:00
Aleksey Kladov
ebd7c04faa construct index from symbols directly 2019-01-03 21:29:05 +03:00
Aleksey Kladov
28f6eedba5 simplify runnables 2019-01-02 20:12:38 +03:00
Aleksey Kladov
acc38a9737 bump deps 2019-01-01 16:21:50 +03:00
Aleksey Kladov
5b2edff138 ⬆️ deps 2018-12-31 14:02:56 +03:00
dependabot[bot]
96ecd73a5c
Bump serde_json from 1.0.33 to 1.0.34
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.33 to 1.0.34.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.33...v1.0.34)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-31 09:48:16 +00:00
dependabot[bot]
51ce71686a
Bump failure from 0.1.3 to 0.1.4
Bumps [failure](https://github.com/rust-lang-nursery/failure) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/rust-lang-nursery/failure/releases)
- [Changelog](https://github.com/rust-lang-nursery/failure/blob/master/RELEASES.md)
- [Commits](https://github.com/rust-lang-nursery/failure/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-31 08:53:49 +00:00
dependabot[bot]
2d9428b54a
Bump failure_derive from 0.1.3 to 0.1.4
Bumps [failure_derive](https://github.com/withoutboats/failure_derive) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/withoutboats/failure_derive/releases)
- [Commits](https://github.com/withoutboats/failure_derive/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-31 05:36:03 +00:00
Aleksey Kladov
0a8d085619 remove backtraces from Cancelled
Hopefully we won't need them for debugging. If we do need them, it
should be easy to add back.
2018-12-31 00:38:50 +03:00
bors[bot]
f9b58454a4 Merge #378
378: migrate-to-tempdir r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-12-30 20:33:32 +00:00
Aleksey Kladov
f0edb93df2 ⬆️ tempdir 2018-12-30 23:33:04 +03:00
Aleksey Kladov
c2c10b9014 ⬆️ crossbeam
closes #189
2018-12-30 23:23:31 +03:00
Aleksey Kladov
effc1eae8b migrate gen-lsp-server to new crossbeam 2018-12-30 23:02:26 +03:00
bors[bot]
8d1df9834c Merge #358
358: Add support for formatting entire document with rustfmt r=matklad a=aleksanb

Attempting to format a document when rustfmt isn't installed will result
in an error being returned to the frontend. An alternative
implementation would be returning zero replacements.

Part of https://github.com/rust-analyzer/rust-analyzer/issues/160.

Co-authored-by: Aleksander Vognild Burkow <aleksanderburkow@gmail.com>
2018-12-30 10:16:22 +00:00
Aleksey Kladov
e29f53f626 bump cargo.lock 2018-12-30 12:49:07 +03:00
Aleksander Vognild Burkow
ed47c93afe Install rustfmt in rustfmt test 2018-12-29 23:38:26 +01:00
Florian Diebold
cfa1de72eb Implement type variables
This will really become necessary when we implement generics, but even now, it
allows us to reason 'backwards' to infer types of expressions that we didn't
understand for some reason.

We use ena, the union-find implementation extracted from rustc, to keep track of
type variables.
2018-12-29 12:04:34 +01:00
Aleksey Kladov
10e687f281 fix lockfile 2018-12-28 19:46:35 +03:00
dependabot[bot]
626badc30a
Bump serde from 1.0.82 to 1.0.83
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.82 to 1.0.83.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.82...v1.0.83)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-28 06:08:30 +00:00
Aleksey Kladov
dddbac6877 remove FnId 2018-12-27 23:51:44 +03:00
bors[bot]
7a1ed6400d Merge #341
341: Bump languageserver-types from 0.53.0 to 0.53.1 r=matklad a=dependabot[bot]

Bumps [languageserver-types](https://github.com/gluon-lang/languageserver-types) from 0.53.0 to 0.53.1.
<details>
<summary>Commits</summary>

- [`1a6c6c1`](1a6c6c18fc) (cargo-release) version 0.53.1
- [`5591192`](5591192047) Merge pull request [#88](https://github-redirect.dependabot.com/gluon-lang/languageserver-types/issues/88) from Xanewok/hover-clone
- [`c78120b`](c78120bf28) Add `Clone` impl for HoverContents and related
- See full diff in [compare view](https://github.com/gluon-lang/languageserver-types/compare/v0.53.0...v0.53.1)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=languageserver-types&package-manager=cargo&previous-version=0.53.0&new-version=0.53.1)](https://dependabot.com/compatibility-score.html?dependency-name=languageserver-types&package-manager=cargo&previous-version=0.53.0&new-version=0.53.1)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>

Co-authored-by: dependabot[bot] <support@dependabot.com>
2018-12-27 13:38:15 +00:00
dependabot[bot]
74f342648d
Bump languageserver-types from 0.53.0 to 0.53.1
Bumps [languageserver-types](https://github.com/gluon-lang/languageserver-types) from 0.53.0 to 0.53.1.
- [Release notes](https://github.com/gluon-lang/languageserver-types/releases)
- [Changelog](https://github.com/gluon-lang/languageserver-types/blob/master/release.toml)
- [Commits](https://github.com/gluon-lang/languageserver-types/compare/v0.53.0...v0.53.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 13:15:04 +00:00
dependabot[bot]
4017966a0b
Bump parking_lot from 0.6.4 to 0.7.0
Bumps [parking_lot](https://github.com/Amanieu/parking_lot) from 0.6.4 to 0.7.0.
- [Release notes](https://github.com/Amanieu/parking_lot/releases)
- [Changelog](https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Amanieu/parking_lot/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 13:14:24 +00:00
bors[bot]
d8bfad9e92 Merge #343 #344
343: Bump arrayvec from 0.4.9 to 0.4.10 r=matklad a=dependabot[bot]

Bumps [arrayvec](https://github.com/bluss/arrayvec) from 0.4.9 to 0.4.10.
<details>
<summary>Commits</summary>

- [`21661fa`](21661facf8) 0.4.10
- [`06930d2`](06930d27ce) FIX: Remove unused Copy/Clone for MaybeUninit
- [`85d9a06`](85d9a06a62) FIX: Use repr(C) MaybeUninit after discussion with RalfJung
- See full diff in [compare view](https://github.com/bluss/arrayvec/compare/0.4.9...0.4.10)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=arrayvec&package-manager=cargo&previous-version=0.4.9&new-version=0.4.10)](https://dependabot.com/compatibility-score.html?dependency-name=arrayvec&package-manager=cargo&previous-version=0.4.9&new-version=0.4.10)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>

344: Bump itertools from 0.7.11 to 0.8.0 r=matklad a=dependabot[bot]

Bumps [itertools](https://github.com/bluss/rust-itertools) from 0.7.11 to 0.8.0.
<details>
<summary>Commits</summary>

- [`cd0602a`](cd0602addc) 0.8.0
- [`5a8f2fd`](5a8f2fd5ed) MAINT: Require Rust 1.24 as minimum version
- [`4986d92`](4986d92d7f) DOC: Minor edits to module docs
- [`01f15a0`](01f15a0910) Merge [#288](https://github-redirect.dependabot.com/bluss/rust-itertools/issues/288)
- [`883d40a`](883d40a6ef) map_into method
- [`3bf265d`](3bf265d5b7) Merge pull request [#321](https://github-redirect.dependabot.com/bluss/rust-itertools/issues/321) from JohnHeitmann/master
- [`e820996`](e820996f64) Document the trait extension behavior of Itertools a bit more clearly
- [`44c9654`](44c9654fdb) Merge pull request [#318](https://github-redirect.dependabot.com/bluss/rust-itertools/issues/318) from bluss/std-deprecations
- [`d2e254f`](d2e254f22f) API: Fix the mystery deprecation message for Step
- [`602f2f6`](602f2f675e) API: Deprecate .foreach() in favour of std's .for_each()
- Additional commits viewable in [compare view](https://github.com/bluss/rust-itertools/compare/0.7.11...0.8.0)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.7.11&new-version=0.8.0)](https://dependabot.com/compatibility-score.html?dependency-name=itertools&package-manager=cargo&previous-version=0.7.11&new-version=0.8.0)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>

Co-authored-by: dependabot[bot] <support@dependabot.com>
2018-12-27 13:06:30 +00:00
dependabot[bot]
a400444e33
Bump itertools from 0.7.11 to 0.8.0
Bumps [itertools](https://github.com/bluss/rust-itertools) from 0.7.11 to 0.8.0.
- [Release notes](https://github.com/bluss/rust-itertools/releases)
- [Commits](https://github.com/bluss/rust-itertools/compare/0.7.11...0.8.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 12:32:23 +00:00
dependabot[bot]
6fb53caea5
Bump arrayvec from 0.4.9 to 0.4.10
Bumps [arrayvec](https://github.com/bluss/arrayvec) from 0.4.9 to 0.4.10.
- [Release notes](https://github.com/bluss/arrayvec/releases)
- [Commits](https://github.com/bluss/arrayvec/compare/0.4.9...0.4.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 12:32:18 +00:00
bors[bot]
e422c2e2f4 Merge #325
325: implement translate_offset_with_edit r=matklad a=vemoo

- Implement `translate_offset_with_edit` to resolve #105 
- Add proptest impls for text, offsets and edits and use them in tests for `translate_offset_with_edit` and `LineIndex`
- Added benchmark for `translate_offset_with_edit`

Co-authored-by: Bernardo <berublan@gmail.com>
2018-12-27 12:19:19 +00:00
Aleksey Kladov
93996fecdc add cancelation module & cancelation backtraces 2018-12-27 13:03:32 +03:00
Bernardo
863ed19946 remove benchmark and simplify tests 2018-12-25 20:14:27 +01:00
Bernardo
d6312085a1 remove slower impl, add benchmarks 2018-12-25 20:03:14 +01:00
Bernardo
8c9df62c1c move translate_offset_with_edit to ra_editor 2018-12-25 19:59:02 +01:00
Bernardo
d951979159 test translate_offset_with_edit against simple impl for single edits 2018-12-25 19:49:55 +01:00
Bernardo
3d98744c2a proptest strategies for TextUnit and AtomTextEdit 2018-12-25 19:45:21 +01:00
Florian Diebold
ef67581104 Resolve paths to defs (functions currently) during type inference 2018-12-23 17:13:11 +01:00
Aleksey Kladov
724862a1a4 workaround salsa/parking-log bug
https://github.com/salsa-rs/salsa/issues/99
https://github.com/Amanieu/parking_lot/issues/101
2018-12-22 16:45:57 +03:00
Aleksey Kladov
2351308d92 remove explicit serde_derive 2018-12-21 22:39:59 +03:00
Aleksey Kladov
b5c5995bf1 use builder interface for completion item 2018-12-21 14:38:41 +03:00
Aleksey Kladov
bb2bafb606 docs for input queries 2018-12-20 14:12:47 +03:00
Aleksey Kladov
a5ef8ad05b swtich lsp server to vfs 2018-12-20 12:15:38 +03:00
Aleksey Kladov
cb6205c09d use relpaths for module resolve 2018-12-20 12:15:38 +03:00
Aleksey Kladov
a422d480a1 implement vfs events handling 2018-12-20 12:15:38 +03:00
Aleksey Kladov
2ae05a6163 vfs crate scaffold 2018-12-20 12:15:23 +03:00
Aleksey Kladov
7509901fa0 wip 2018-12-20 12:15:23 +03:00
Jeremy A. Kolb
93cf39d968 Bump languageserver-types to 0.53.0 to support LSP 3.14.0
See: https://microsoft.github.io/language-server-protocol/specification#version_3_14_0
2018-12-19 17:32:44 -05:00
Aleksey Kladov
193992fd14 move thread worker to a separate crate 2018-12-18 12:52:17 +03:00
Bernardo
7344d28768 extract AtomEdit and Edit into new ra_text_edit crate 2018-12-10 22:09:12 +01:00
Aleksey Kladov
13100da7a2 switch threadpool back from rayon to threadpool
rayon does not replenish the pool when the thread panics, but we must
be reselient to bugs.
2018-12-09 13:13:36 +03:00
Florian Diebold
1dfd06fc8a Use json comparison code from cargo for heavy tests 2018-12-06 21:32:15 +01:00
Aleksey Kladov
70a7cb34ec switch to released id-arena 2018-11-28 21:03:30 +03:00
Aleksey Kladov
59e29aef63 Move hir to a separate crate 2018-11-28 04:09:44 +03:00
Aleksey Kladov
0e4b710af8 introduce hir crate 2018-11-28 03:42:26 +03:00
Aleksey Kladov
11168c464c move db basics to ra_db
This should allow to move hir to a separate crate
2018-11-28 03:25:20 +03:00
Aleksey Kladov
ed023929d5 Switch to id-arena 2018-11-27 14:23:06 +03:00
Aleksey Kladov
cb22a799d6 Add Loc2IdMap 2018-11-18 15:44:24 +03:00
Jeremy A. Kolb
2119fe2143 Cargo update 2018-11-07 18:42:09 +03:00
bors[bot]
2e2445444a Merge #207
207: Finish implementing char validation r=aochagavia a=aochagavia

The only thing missing right now are good integration tests (and maybe more descriptive error messages)

Co-authored-by: Adolfo Ochagavía <github@adolfo.ochagavia.xyz>
2018-11-07 11:09:40 +00:00
Adolfo Ochagavía
3b2ba59526 Use ArrayString instead of hand rolled data structure 2018-11-07 11:58:34 +01:00
Aleksey Kladov
dafe747dcc upstream basic tree algorithms to rowan 2018-11-06 20:56:32 +03:00
Aleksey Kladov
a17b41033a update salsa 2018-11-01 15:30:07 +03:00
Aleksey Kladov
64ce895ef0 extract fixture parsing 2018-10-31 21:37:40 +03:00
Aleksey Kladov
23cad90fe9 ⬆️ salsa 2018-10-31 01:22:47 +03:00
Aleksey Kladov
950e8b8182 introduce syntax-ptr 2018-10-30 21:23:23 +03:00
Aleksey Kladov
bc4de7128f gc syntax trees 2018-10-29 13:58:11 +03:00
Aleksey Kladov
d190019571 Move input to top-level 2018-10-25 17:52:50 +03:00
Aleksey Kladov
56df0fc83c Improve logging 2018-10-25 16:25:40 +03:00
Aleksey Kladov
9a7db8fa00 simplify roots 2018-10-24 17:25:10 +03:00
Jeremy A. Kolb
0ee37099b5 Cargo Update run
Bump relative-path to 0.4.0
Failure 0.1.3 to fix leak with downcast

Updated everything else too
2018-10-23 09:46:00 -04:00
Jeremy A. Kolb
6453b29cb5 Add LspError to explicity return errors from LSP handlers
Fixes #145
2018-10-22 13:49:27 -04:00
Aleksey Kladov
dbe2880219 cleanup 2018-10-20 23:27:06 +03:00
Aleksey Kladov
0102a01f76 Remove job handle 2018-10-20 22:59:54 +03:00
Aleksey Kladov
73dd870da2 update salsa 2018-10-20 18:43:02 +03:00
Aleksey Kladov
00cdde2c52 Update rowan 2018-10-17 19:52:25 +03:00
Aleksey Kladov
0b6d4983de Switch to published teraron 2018-10-16 20:36:45 +03:00
Aleksey Kladov
514aa3cf85 extract teraron 2018-10-16 20:31:30 +03:00
Aleksey Kladov
f30a7deff1 switch to salsa release 2018-10-15 23:57:46 +03:00
Aleksey Kladov
062019590d Switch to the master of salsa 2018-10-15 21:25:54 +03:00
Aleksey Kladov
d8aee31a60 start salsa migration 2018-10-15 21:19:49 +03:00
Aleksey Kladov
64b879d6a9 add salsa dep, break the world 2018-10-15 21:12:06 +03:00
Muhammad Mominul Huque
dc2b30e9b6
Replace HashMap, HashSet with FxHashMap and FxHashSet 2018-10-12 00:07:44 +06:00
Jeremy A. Kolb
59af391f09 cargo update 2018-10-02 13:25:04 -04:00
Aleksey Kladov
a261a1836b Move to rowan for syntax tree impl 2018-10-02 17:09:23 +03:00
Jeremy A. Kolb
e293a16d6b Support LSP 3.13 2018-09-23 11:10:57 -04:00
Aleksey Kladov
c6cdd649e5 commit lock 2018-09-19 01:10:19 +03:00