Aleksey Kladov
b6fcd46278
Codify Arena pattern
2018-11-25 19:02:14 +03:00
Aleksey Kladov
955d2eea45
add test loggin API to db
2018-11-21 20:44:05 +03:00
Aleksey Kladov
edeec6a414
Complete paths after ::
2018-11-21 18:34:20 +03:00
Aleksey Kladov
7ffc7d3308
Move path completion to descriptors
2018-11-21 18:20:44 +03:00
Aleksey Kladov
11f19b7849
name res uses paths
2018-11-21 17:51:02 +03:00
Aleksey Kladov
5a87a24f82
move Path
2018-11-21 17:18:26 +03:00
Aleksey Kladov
18000ba864
docs
2018-11-21 17:07:44 +03:00
Aleksey Kladov
d47075af52
move path to descriptors
2018-11-21 16:16:54 +03:00
Aleksey Kladov
8954d4dc67
Introduce Import struct
2018-11-21 16:15:15 +03:00
Aleksey Kladov
82c088137a
Remove import_resolutions
...
It's cheaper to re-query this info anyway
2018-11-21 16:02:34 +03:00
Aleksey Kladov
049f8df93c
switch completion to new scope
2018-11-21 12:57:05 +03:00
Aleksey Kladov
b70b6bce19
Move to top
2018-11-21 11:35:25 +03:00
Aleksey Kladov
ff75ad13a4
Measure time
2018-11-21 11:18:43 +03:00
Aleksey Kladov
02c4f82348
simple test for item map
2018-11-21 11:16:46 +03:00
Aleksey Kladov
36aad85138
add item map query
2018-11-21 00:39:50 +03:00
Aleksey Kladov
9bb11aee44
populate resolve from unresolved imports
2018-11-21 00:31:12 +03:00
Aleksey Kladov
aab71bff8e
move to method
2018-11-20 23:36:53 +03:00
Aleksey Kladov
cc8163439f
populate modules
2018-11-20 21:50:22 +03:00
Aleksey Kladov
1cf92c3e28
remember spans with paths
2018-11-20 21:17:14 +03:00
Aleksey Kladov
c54b51fded
add DefId
2018-11-20 21:12:15 +03:00
Aleksey Kladov
8086107b6a
implement path conversion
2018-11-20 19:40:37 +03:00
Aleksey Kladov
bcdcfa9df2
Some import resolution boilerplate
2018-11-20 19:24:58 +03:00
Aleksey Kladov
5f8068cea8
make mod private
2018-11-20 18:34:10 +03:00
Aleksey Kladov
a2fdb41ace
fix typo
2018-11-20 17:33:27 +03:00
Aleksey Kladov
8fc51501e0
Remove ModId
2018-11-20 17:23:17 +03:00
Aleksey Kladov
1913bedc2e
Make more stuff private
2018-11-20 17:21:00 +03:00
Aleksey Kladov
a300fb68e2
Make most of modules impl private
2018-11-20 17:16:33 +03:00
Aleksey Kladov
0dd26a2f5b
Use OO module API in completion
2018-11-20 17:08:40 +03:00
Aleksey Kladov
21508cfb2f
Use OO API instead of resolve_module
2018-11-20 16:55:35 +03:00
Aleksey Kladov
0ab3c65d98
Use OO API in crate_for
2018-11-20 16:40:15 +03:00
Aleksey Kladov
d475e3b29f
Make LikdId private
2018-11-20 16:24:47 +03:00
Aleksey Kladov
3b8d0c215a
Use more OO API for parent module
2018-11-20 16:21:02 +03:00
Aleksey Kladov
099da13f53
Make some queries private
...
Convention: we prefix private queries with `_` until salsa support
real visibility.
2018-11-20 14:58:01 +03:00
Aleksey Kladov
4e683d7af1
Add ModId
2018-11-20 14:52:10 +03:00
Aleksey Kladov
4e48917c00
use loc2id for FnIds
2018-11-18 16:21:23 +03:00
Aleksey Kladov
cb22a799d6
Add Loc2IdMap
2018-11-18 15:44:24 +03:00
Adolfo Ochagavía
a4f7d7a7cd
Fix typos
2018-11-11 19:28:55 +01:00
Aleksey Kladov
6d253b58da
Complete paths in use trees
2018-11-07 21:38:41 +03:00
Aleksey Kladov
06fbc6e3ed
Do more work in classify
2018-11-07 21:17:18 +03:00
Aleksey Kladov
397c235086
Use cached module scopes for completion
2018-11-07 21:08:11 +03:00
Aleksey Kladov
9b88ec488b
split completion mod
2018-11-07 20:34:16 +03:00
Aleksey Kladov
af17fc9697
reorganize completion
2018-11-07 19:50:17 +03:00
Aleksey Kladov
22949dab26
rename module source
2018-11-07 18:42:36 +03:00
Aleksey Kladov
2ed1514df3
rename ROOT -> SOURCE_FILE
2018-11-07 18:42:36 +03:00
Aleksey Kladov
f8b36bbc3b
Rename File -> SourceFileNode
2018-11-07 18:42:36 +03:00
Jeremy A. Kolb
c29f158c20
Rustfmt to pass CI
2018-11-07 18:24:55 +03:00
Jeremy A. Kolb
8ccd26adf3
Show documentation for hover requests
2018-11-07 18:24:55 +03:00
Aleksey Kladov
a5301e94d5
Generalize Owned nodes
2018-11-06 21:52:00 +03:00
Aleksey Kladov
0192c116f7
Use FilePosition everywhere
2018-11-05 14:57:41 +03:00
Aleksey Kladov
1e1c188cbf
rename Position to FilePostion
2018-11-05 14:24:38 +03:00
Aleksey Kladov
6bbcfca7ae
Fully add inline modules to module tree
2018-11-05 14:10:20 +03:00
Aleksey Kladov
44d8919384
Submodule is enum
2018-11-05 13:23:37 +03:00
Aleksey Kladov
17a88928f4
collect all submodules
2018-11-05 13:08:52 +03:00
Aleksey Kladov
e0b21b9899
submodules works with module sources
2018-11-05 12:36:38 +03:00
Aleksey Kladov
88a15d10d5
use module_for_source
2018-11-05 12:36:38 +03:00
Aleksey Kladov
cd878658d3
Introduce modules_from_source fn
2018-11-05 12:36:38 +03:00
Aleksey Kladov
f29b0172fb
Use Default everywhere
2018-11-04 14:09:21 +03:00
Aleksey Kladov
cca5f862de
Don't order import alphabetical
...
alphabetical ordering is no more consistent, and much less useful then
the ordering which arises naturally when you add import.
2018-11-01 16:18:53 +03:00
Aleksey Kladov
c74e86536e
Dead code
2018-11-01 16:00:13 +03:00
Aleksey Kladov
a17b41033a
update salsa
2018-11-01 15:30:07 +03:00
Aleksey Kladov
962a491829
Some docs
2018-11-01 14:31:35 +03:00
Aleksey Kladov
f2b654fd44
Add inline source
2018-11-01 13:51:44 +03:00
Aleksey Kladov
223fd2979c
Introduce ModuleSource
2018-11-01 13:41:58 +03:00
Aleksey Kladov
d685a9b564
Use From to get an owned AST
2018-11-01 13:41:20 +03:00
Aleksey Kladov
2050812cad
remove SyntaxPtrDatabase
2018-11-01 13:15:11 +03:00
Aleksey Kladov
2b210d98b8
Fix test
2018-11-01 00:00:43 +03:00
Aleksey Kladov
fabb804f30
Speedup fmt
2018-10-31 23:58:03 +03:00
Aleksey Kladov
8f1a83b4cb
RemoveDeadCode
2018-10-31 23:50:18 +03:00
Aleksey Kladov
6be50f7d5d
Reformat all
2018-10-31 23:41:43 +03:00
Jeremy A. Kolb
9b9fc135d6
Simplify find_all_refs by always resolving a ast::BindPat
2018-10-31 23:38:22 +03:00
Jeremy A. Kolb
406f366ccc
Add DeclarationDescriptor and ReferenceDescriptor
...
Fixes #142
Fixes #146
2018-10-31 23:30:57 +03:00
bors[bot]
55ebe6380a
Merge #167
...
167: Attempt to extract useful comments from function signatures r=matklad a=kjeremy
I'm trying to extract useful function comments for signature info. This will also be useful for hover. This is a WIP (and actually works pretty well!) but I don't think it's the right approach long term so some guidance would be appreciated so that we could also get comments for say types and variable instances etc.
Currently `test_fn_signature_with_simple_doc` fails due to a bug in `extend` but we probably shouldn't use this approach anyway. Maybe comments should be attached to nodes somehow? I'm also thinking that maybe the markdown bits should live in the language server.
Thoughts?
Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
2018-10-31 19:41:24 +00:00
Aleksey Kladov
dfba29e4fb
Add MockAnalysis to make testing easier
2018-10-31 22:35:01 +03:00
Jeremy A. Kolb
05eb489ec5
Useful comments from function signatures
2018-10-31 15:23:20 -04:00
Jeremy A. Kolb
3c2aefc274
Prevent panic by initializing LibrariesQuery
2018-10-31 14:53:09 -04:00
bors[bot]
b58ca6b1a6
Merge #177
...
177: Librariese -> Libraries r=matklad a=kjeremy
Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
2018-10-31 18:16:58 +00:00
Jeremy A. Kolb
542fbcbaed
Fix typo
2018-10-31 14:05:14 -04:00
bors[bot]
1dc5608d0b
Merge #176
...
176: Move completio to ra_analysis r=matklad a=matklad
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.
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-10-31 18:05:12 +00:00
Jeremy A. Kolb
e60ef6260f
Fix typos
2018-10-31 21:04:38 +03:00
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