Commit Graph

223 Commits

Author SHA1 Message Date
Aleksey Kladov
f3fb59d707 Move completion to ra_analysis
While we should handle completion for isolated file, it's better
achieved by using empty Analysis, rather than working only with &File:
we need memoization for type inference even inside a single file.
2018-10-31 21:01:51 +03:00
Aleksey Kladov
c02be1502c move resolve local name 2018-10-31 15:13:49 +03:00
Aleksey Kladov
b67295134b Move FnDescriptors to analyzer 2018-10-31 10:56:31 +03:00
bors[bot]
032d15c392 Merge #171
171: Query-based module scopes r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-10-30 23:10:48 +00:00
Aleksey Kladov
fbbee53722 Add ModuleScope as a query
This is a first step towards queryifing completion and resolve.

Some code currently duplicates ra_editor: the plan is to move all
completion from ra_editor, but it'll take more than one commit.
2018-10-31 02:08:54 +03:00
Aleksey Kladov
23cad90fe9 ⬆️ salsa 2018-10-31 01:22:47 +03:00
bors[bot]
d10214581e Merge #168
168: Fix param number r=matklad a=kjeremy

Fixes the parameter number if we are not in a method

Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
2018-10-30 21:50:51 +00:00
Aleksey Kladov
1643d94a65 switch to TextRange::subrange 2018-10-30 21:26:55 +03:00
Aleksey Kladov
950e8b8182 introduce syntax-ptr 2018-10-30 21:23:23 +03:00
Jeremy A. Kolb
93dc703011 Fix param number 2018-10-30 14:09:53 -04:00
Aleksey Kladov
bc4de7128f gc syntax trees 2018-10-29 13:58:11 +03:00
Aleksey Kladov
35568cf057 Index files in parallel 2018-10-29 13:32:45 +03:00
Aleksey Kladov
363adf07b7 restore symbols filtering 2018-10-25 17:59:03 +03:00
Aleksey Kladov
d190019571 Move input to top-level 2018-10-25 17:52:50 +03:00
Aleksey Kladov
5ef3fda5e1 Remove unneded Hash 2018-10-25 17:43:17 +03:00
Aleksey Kladov
e7217e1a01 dead code 2018-10-25 17:42:29 +03:00
Aleksey Kladov
3c024d6c62 dead code 2018-10-25 17:41:17 +03:00
Aleksey Kladov
e0eb33605a Encapsulate CrateGraph a bit 2018-10-25 17:40:24 +03:00
Aleksey Kladov
75d9cbd7c2 re-enable cancelation 2018-10-25 17:22:31 +03:00
Aleksey Kladov
772acb53f2 use correct file when resolving callables 2018-10-25 16:25:40 +03:00
Aleksey Kladov
171acad15b disable cancelation 2018-10-25 16:25:40 +03:00
Aleksey Kladov
56df0fc83c Improve logging 2018-10-25 16:25:40 +03:00
Aleksey Kladov
ee4d904cfb Store all the data in the Salsa Database 2018-10-25 16:25:40 +03:00
Aleksey Kladov
69d07df201 Complete crate:: paths 2018-10-24 18:37:25 +03:00
Aleksey Kladov
9a7db8fa00 simplify roots 2018-10-24 17:25:10 +03:00
Aleksey Kladov
8ada1a2689 Simplify 2018-10-24 16:36:28 +03:00
Aleksey Kladov
44c8ddf885 make indexing parallel again 2018-10-24 16:13:17 +03:00
Aleksey Kladov
b636d23bec revive the test 2018-10-24 15:00:03 +03:00
bors[bot]
ffbb604363 Merge #157
157: Introduce ModuleId r=matklad a=matklad

Previously, module was synonym with a file, and so a module could have
had several parents. This commit introduces a separate module concept,
such that each module has only one parent, but a single file can
correspond to different modules.

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-10-23 17:57:10 +00:00
Aleksey Kladov
dc477db757 Introduce ModuleId
Previously, module was synonym with a file, and so a module could have
had several parents. This commit introduces a separate module concept,
such that each module has only one parent, but a single file can
correspond to different modules.
2018-10-23 20:44:23 +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
bors[bot]
27694abd94 Merge #138
138: Fix some clippy lints r=matklad a=alanhdu

I went ahead and fixed all the clippy lints (there were a couple I thought would be better unfixed and added `cfg` statements to allow them) and also re-enabled clippy and rustfmt in CI.

They were disabled with `no time to explain, disable clippy checks`, so hopefully this won't go against whatever the reason at the time was 😆.

One question about the CI though: right now, it's an allowed failure that runs against the latest nightly each time. Would it be better to pin it to a specific nightly (or use the `beta` versions) to lower the churn?

Co-authored-by: Alan Du <alanhdu@gmail.com>
2018-10-22 21:14:38 +00: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
8bb4380448 Fix tests 2018-10-20 22:43:36 +03:00
Aleksey Kladov
6e88aaef5d use pythonic import order
use std
// blank line
use extern crates
// blank line
use crate::{}
2018-10-20 22:38:52 +03:00
Aleksey Kladov
8eea10e3ab actually check for cancelation 2018-10-20 22:35:55 +03:00
Aleksey Kladov
71cbdddf1c make file-symbols query cancelable 2018-10-20 22:29:26 +03:00
Aleksey Kladov
e74bf6e56e mark module queries as cacelable 2018-10-20 22:15:03 +03:00
Aleksey Kladov
9fb41716de make more things cancelable 2018-10-20 22:09:12 +03:00
Aleksey Kladov
998f2ae762 remove job tokens 2018-10-20 22:02:41 +03:00
Aleksey Kladov
c4b0d3cd56 make parent module cancelable 2018-10-20 21:52:49 +03:00
Aleksey Kladov
61518580ed introduce cancelable 2018-10-20 21:46:17 +03:00
Alan Du
0857c22f26 Revert "clippy: Fix new_ret_no_self"
This reverts commit 2ae9dfa812.
2018-10-20 12:29:25 -04:00
Aleksey Kladov
73dd870da2 update salsa 2018-10-20 18:43:02 +03:00
Jeremy A. Kolb
3746689e9d Implement Find All References for local variables 2018-10-18 13:40:12 -04:00
Alan Du
a5da770ec6 Fix function calls 2018-10-17 19:42:23 -04:00
Alan Du
bc774fe6cf clippy: needless_lifetimes 2018-10-17 19:42:23 -04:00
Alan Du
2ae9dfa812 clippy: Fix new_ret_no_self 2018-10-17 19:42:23 -04:00
Alan Du
2268a2f8c6 Silence clippy::derive_hash_xor_eq
Manually implement PartialEq
2018-10-17 19:42:23 -04:00
Alan Du
5db663d61f Clippy lint: single-character string constant 2018-10-17 19:42:23 -04:00
Jeremy A. Kolb
61f3a438d3 Cargo Format
Run `cargo fmt` and ignore generated files
2018-10-16 09:41:10 -04:00
Aleksey Kladov
f30a7deff1 switch to salsa release 2018-10-15 23:57:46 +03:00
Aleksey Kladov
fc31ddd303 Simplify 2018-10-15 22:59:18 +03:00
Aleksey Kladov
85ff328d31 remove clones 2018-10-15 22:36:08 +03:00
Aleksey Kladov
bbcd998433 make analysis sync 2018-10-15 22:29:24 +03:00
Aleksey Kladov
76c51fae77 Tweak writable root API 2018-10-15 22:05:21 +03:00
Aleksey Kladov
8c88900fa9 remove resolver from world 2018-10-15 22:01:50 +03:00
Aleksey Kladov
ee69fddf02 Drop dead code 2018-10-15 21:56:01 +03:00
Aleksey Kladov
7503c5528f fix tests 2018-10-15 21:54:12 +03:00
Aleksey Kladov
062019590d Switch to the master of salsa 2018-10-15 21:25:54 +03:00
Aleksey Kladov
d783371b86 migrate modue map to salsa 2018-10-15 21:20:20 +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
Aleksey Kladov
bb298158eb migrate analysis and server to 2018 2018-10-15 20:15:53 +03:00
Jeremy A. Kolb
c9909f42ba A FnDescriptor shouldn't exist without a name 2018-10-12 07:54:57 -04:00
Jeremy A. Kolb
f8a2b53304 Language Server: textDocument/signatureHelp
Implements a pretty barebones function signature help mechanism in
the language server.

Users can use `Analysis::resolve_callback()` to get basic information
about a call site.

Fixes #102
2018-10-11 16:40:46 -04:00
Muhammad Mominul Huque
dc2b30e9b6
Replace HashMap, HashSet with FxHashMap and FxHashSet 2018-10-12 00:07:44 +06:00
Aleksey Kladov
2b956fd3a8 Add on-enter handler
Now, typing doc comments is much more pleasant
2018-10-09 19:52:06 +03:00
Jeremy A. Kolb
828bd73195 Resolve local names first 2018-10-06 12:02:15 -04:00
Jeremy A. Kolb
1d4c767879 WIP: This doesn't currently work but I also don't think it's the right abstraction 2018-10-05 15:21:40 -04:00
Jeremy A. Kolb
ff0a706a30 Split folding ranges into editor and lsp parts 2018-09-24 09:52:33 -04:00
Aleksey Kladov
b5021411a8 rename all things 2018-09-16 13:07:39 +03:00