Commit Graph

1632 Commits

Author SHA1 Message Date
DJMcNab
7a76433c45 Struct literals should not be a BlockLike::Block 2019-01-26 18:45:29 +00: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
Jeremy Kolb
a892067951 Make doc comments optional 2019-01-26 10:35:23 -05:00
bors[bot]
a8d32c4d1a Merge #671
671: Makre VFS slightly less super obscure r=vemoo a=matklad

I've decided to better understand what we do in VFS, and this turns out to be really hard. Jugling threads and channels is one of the most unfortunately arcane bits of rust...

I had some success though by flattenning the structure so that all channel & thread creation routines are on one screen. 

r? @vemoo 

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-26 15:13:44 +00:00
Jeremy Kolb
e9e0ea0398 Do not unconditionally trim comments 2019-01-26 09:55:30 -05:00
Jeremy Kolb
8c08b6825e Preserve indentation in doc comments 2019-01-26 09:50:17 -05:00
Aleksey Kladov
9f16892b94 remove watcher ctx 2019-01-26 17:17:28 +03:00
Aleksey Kladov
bf98fc609e remove mutexes 2019-01-26 17:04:00 +03:00
Aleksey Kladov
012ea3fac6 handle all the reads on the "main" watcher thread 2019-01-26 17:01:58 +03:00
Aleksey Kladov
3ce531f95d cleanup: add result alias 2019-01-26 16:40:24 +03:00
Aleksey Kladov
390a20787e consolidate error handling 2019-01-26 16:28:04 +03:00
Aleksey Kladov
20d7a431fd refactor-fvs 2019-01-26 16:28:04 +03:00
Aleksey Kladov
bf7a0f43d0 minor cleanups 2019-01-26 16:26:30 +03:00
bors[bot]
3feaf2a008 Merge #659
659: Fold blocks of mod items r=matklad a=eulerdisk

Fixes #572

As requested, we ignore `mod`s with a visibility specifier.

Co-authored-by: Andrea Pretto <eulerdisk@gmail.com>
2019-01-26 12:49:08 +00:00
Aleksey Kladov
07a4b9f1a0 dont overwrite memfies 2019-01-26 15:41:52 +03:00
Andrea Pretto
b9ca8ab868 Better visibility check. 2019-01-26 13:32:48 +01:00
bors[bot]
2acaa92c93 Merge #660
660: Support macro calls in type position r=matklad a=regiontog

A [playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=fdc6dd4ddaece92a72fa2a292b75e27c) demonstrating the syntax in question.

Co-authored-by: Erlend Tobiassen <erlend.tobiassen@gmail.com>
2019-01-26 10:23:28 +00:00
bors[bot]
8b6dea348f Merge #666
666: rename source_file -> parse r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-26 08:55:38 +00:00
Aleksey Kladov
9457b1f0e6 rename source_file -> parse 2019-01-26 11:51:36 +03:00
Bernardo
410a3ae6e8 use entry file_type, improve test 2019-01-26 11:46:37 +03:00
Bernardo
d63e1cebff use Roots in watcher 2019-01-26 11:46:37 +03:00
Bernardo
86fadbd4e5 extract Roots struct 2019-01-26 11:46:37 +03:00
Bernardo
cfbf47b002 review fixes 2019-01-26 11:46:37 +03:00
Bernardo
34a34f9399 use released notifiy version, add TODO comment 2019-01-26 11:46:37 +03:00
Bernardo
be14ab217c better test, avoid duplicated events 2019-01-26 11:46:27 +03:00
Bernardo
0a08650852 hardcode ".git" and "node_modules" also 2019-01-26 11:46:27 +03:00
Bernardo
10a24cf649 simplify and optimize RootFilterby determining if is contained first 2019-01-26 11:46:27 +03:00
Bernardo
eeed6cf53b fix recursive watch 2019-01-26 11:46:27 +03:00
Bernardo
2a1afad3ed avoid boxing 2019-01-26 11:46:27 +03:00
Bernardo
277e0f1baa move watcher to io module 2019-01-26 11:46:27 +03:00
Bernardo
7f7c4e7465 do not emit create for directory again 2019-01-26 11:46:27 +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
eacf7aeb42 ignore check event dir for ignore, cleanup tests 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
e69b620f0d add missing Task::HandleChange 2019-01-26 11:46:27 +03:00
Bernardo
abd8ccefa4 better error handling 2019-01-26 11:46:27 +03:00
Bernardo
b0f7e72c49 use notify with fix 2019-01-26 11:46:27 +03:00
Bernardo
5f31d495bd reference notify issue 2019-01-26 11:46:16 +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
6b86f038d6 refator to move all io to io module
use same channel for scanner and watcher
some implementations pending
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
4711cbcace rename FilesDatabase -> SourceDatabase 2019-01-26 11:20:30 +03:00
Aleksey Kladov
3223de5976 move ide queries to ide db 2019-01-26 11:17:05 +03:00
Aleksey Kladov
be1a005ebd fold syntax database into files database 2019-01-26 11:09:39 +03:00
Aleksey Kladov
ba4c5021c4 list enum variants in the outline 2019-01-26 10:12:00 +03:00
Andrea Pretto
27c071f702 Fold blocks of mod items.
Fixes #572
2019-01-26 00:31:14 +01:00
Erlend Tobiassen
e28bd099d6
Support macro calls in type position 2019-01-25 23:56:31 +01:00
Aleksey Kladov
23172a116c rename POS_FIELD -> POS_FIELD_DEF
to match NAMED_FIELD_DEF
2019-01-26 00:24:12 +03:00
bors[bot]
3c7acecade Merge #656
656: :arrow_up deps r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-25 20:43:09 +00:00
bors[bot]
d0ddc5a7c1 Merge #655
655: Fix type inference of binops on int/float variables r=matklad a=flodiebold

Fixes #651.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-25 20:36:56 +00:00
Florian Diebold
5a1385007c Fix type inference of binops on int/float variables
Fixes #651.
2019-01-25 21:32:49 +01:00
Aleksey Kladov
1fd18f020d ⬆️ salsa 2019-01-25 23:27:16 +03:00
bors[bot]
d3b5ff8fe6 Merge #654
654: nicer behavior in case of bugs r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-25 20:20:11 +00:00
bors[bot]
03fc615ead Merge #653
653: fix re-indent r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-25 20:13:07 +00:00
Aleksey Kladov
54f30bb6d8 nicer behavior in case of bugs
We should always reach a fixed point, but if we fail, let's fail
loudly!
2019-01-25 23:13:07 +03:00
Aleksey Kladov
dbd28e4203 fix re-indent 2019-01-25 23:12:30 +03:00
Aleksey Kladov
27a085f79e print one size for symbols 2019-01-25 23:06:23 +03:00
Jeremy A. Kolb
7a0bc2dd64 Add docs to struct fields 2019-01-25 14:29:56 -05:00
Aleksey Kladov
f0c6a040bd remove dead code 2019-01-25 21:14:41 +03:00
Aleksey Kladov
50a7598773 print one size for symbols 2019-01-25 21:10:51 +03:00
bors[bot]
aae69bc897 Merge #647
647: fix todo r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-25 18:01:56 +00:00
Aleksey Kladov
d0cf4306bd fix todo 2019-01-25 20:55:38 +03:00
bors[bot]
cc73d3ccbc Merge #646
646: Add module documentation support r=matklad a=kjeremy



Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
2019-01-25 17:55:29 +00:00
Jeremy A. Kolb
6588579116 Add module documentation support 2019-01-25 12:51:36 -05:00
bors[bot]
daaba4be17 Merge #645
645: WIP: support goto for fields. r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-25 17:38:49 +00:00
Aleksey Kladov
9f2574c97e add ability to get strcut field source 2019-01-25 20:38:03 +03:00
Aleksey Kladov
0044514a4e remember where fields resolve to during inference 2019-01-25 20:02:53 +03:00
bors[bot]
bce0c6267a Merge #644
644: EnumVariant details for completion r=matklad a=kjeremy



Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
2019-01-25 17:02:30 +00:00
Jeremy A. Kolb
9a97c10fda EnumVariant details for completion 2019-01-25 11:50:59 -05:00
Aleksey Kladov
f6adb85b68 add gc request 2019-01-25 19:11:58 +03:00
Aleksey Kladov
046ae1d361 more stats 2019-01-25 17:25:23 +03:00
Aleksey Kladov
8d68b76ba0 better stats 2019-01-25 16:16:42 +03:00
bors[bot]
021e691997 Merge #639
639: Update salsa r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-25 12:34:10 +00:00
Aleksey Kladov
08c12e424d use set methods 2019-01-25 15:25:01 +03:00
Aleksey Kladov
8cf092d5de :arrow_up salsa 2019-01-25 15:16:50 +03:00
Aleksey Kladov
64d4f42558 reduce visibility 2019-01-25 14:25:30 +03:00
Aleksey Kladov
87ac5f5b36 use positional ids for fields 2019-01-25 14:21:14 +03:00
Aleksey Kladov
47e5536678 rename struct field -> struct field data 2019-01-25 12:58:01 +03:00
Aleksey Kladov
87288d802c pack enum variants into arena 2019-01-25 12:50:46 +03:00
Aleksey Kladov
2ee2fba752 switch to positional enum variants 2019-01-25 11:35:38 +03:00
bors[bot]
946aea3eb3 Merge #634
634: rename def_id -> def r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-25 07:32:13 +00:00
Aleksey Kladov
0707f65806 drop obsolete fixme 2019-01-25 10:31:45 +03:00
Aleksey Kladov
3b45ddd984 deglobify 2019-01-25 10:29:55 +03:00
Aleksey Kladov
74beb5bfcb simplify 2019-01-25 10:29:00 +03:00
Aleksey Kladov
ed27bd8d77 remove useless wrapper 2019-01-25 10:20:35 +03:00
Aleksey Kladov
b90b90cb95 fix comment 2019-01-25 10:17:50 +03:00
Aleksey Kladov
bc77f91cf6 rename def_id -> def 2019-01-25 10:16:28 +03:00
Aleksey Kladov
e884ab05c2 write path resolution code only once 2019-01-25 10:15:10 +03:00
bors[bot]
675943712c Merge #630
630: Fill in DocumentSymbol::detail r=matklad a=hban

Closes: #516

I just pulled type text from the syntax node and "formatted" is bit. VS Code can't really handle multi-line symbol detail (it's will crop it when rendering), so that formatting will just collapse all white-space to singe space. It isn't pretty, but maybe there's a better way.

Issue also mentions "need to be done for `NavigationTarget` to `SymbolInformation`", but `SymbolInformation` doesn't have detail field on it?

Co-authored-by: Hrvoje Ban <hban@users.noreply.github.com>
2019-01-25 07:13:16 +00:00
Aleksey Kladov
857c35ddb0 refactor import resolution
extract path resolution
use enums instead of bools
2019-01-25 10:08:21 +03:00
bors[bot]
1d4b421aad Merge #633
633: use ToOwned trait instead of inherent method r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-24 23:10:09 +00:00
Aleksey Kladov
2e354f480b use ToOwned trait instead of inherent method 2019-01-25 02:09:31 +03:00
bors[bot]
c42db0bbd7 Merge #623
623: WIP: module id is not def id r=matklad a=matklad

This achieves two things:

* makes module_tree & item_map per crate, not per source_root
* begins the refactoring to remove universal `DefId` in favor of having separate ids for each kind of `Def`. Currently, only modules get a differnt ID though. 

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-24 22:56:13 +00:00
Aleksey Kladov
31d3a56b18 move adt to adt 2019-01-25 01:53:07 +03:00
Aleksey Kladov
a03c109f50 Kill DefId 2019-01-25 01:41:36 +03:00
Aleksey Kladov
1ccf73c836 kill DefKindc 2019-01-25 01:38:21 +03:00
Aleksey Kladov
ff9c5bef7b ModuleDef is Def-free 2019-01-25 01:32:47 +03:00