aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Rename Type => TypeAliasFlorian Diebold2019-02-2412-44/+58
|
* Merge #892bors[bot]2019-02-248-11/+116
|\ | | | | | | | | | | | | | | | | | | 892: Type aliases r=matklad a=flodiebold This implements type aliases (i.e. `type` definitions). There's just one snag: handling recursion. E.g. `type Foo = Foo` makes type inference panic with a query cycle. I think the best way to handle this would be if Salsa provided the ability to catch cycle errors? It seems that there's some work underway to support this [here](https://github.com/salsa-rs/salsa/issues/6) and [here](https://github.com/salsa-rs/salsa/pull/147). Should we wait for this? I don't see a good way to handle this without help from Salsa. Co-authored-by: Florian Diebold <[email protected]>
| * Add test for recursive type aliasesFlorian Diebold2019-02-241-0/+14
| |
| * Implement support for type aliasesFlorian Diebold2019-02-248-11/+102
|/
* Merge #893bors[bot]2019-02-2414-331/+295
|\ | | | | | | | | | | | | | | 893: Completion presentation r=matklad a=matklad Just moves completion code around a bit, to keep logic for producing completions and logic for rendering them into completion items separate. Co-authored-by: Aleksey Kladov <[email protected]>
| * move testing functionsAleksey Kladov2019-02-2410-20/+14
| |
| * move the rest of presentation to presentationAleksey Kladov2019-02-242-50/+20
| |
| * move more code to presentationAleksey Kladov2019-02-242-88/+57
| |
| * move res completion to presentationAleksey Kladov2019-02-243-41/+42
| |
| * simplifyAleksey Kladov2019-02-241-31/+31
| |
| * move enum-variants to presentationAleksey Kladov2019-02-242-21/+21
| |
| * simplifyAleksey Kladov2019-02-244-35/+31
| |
| * move presentaion completion to presentationAleksey Kladov2019-02-242-80/+80
| |
| * move function rendering to presentationAleksey Kladov2019-02-245-24/+49
| |
| * introduce completion presentationAleksey Kladov2019-02-245-33/+42
|/ | | | | This module should remove completion rendering boilerplate from the "brains" of completion engine.
* Merge #891bors[bot]2019-02-246-0/+494
|\ | | | | | | | | | | | | | | 891: Field completion r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * complete fields in struct literalsAleksey Kladov2019-02-241-7/+16
| |
| * complete struct literalsAleksey Kladov2019-02-244-0/+78
| |
| * support upcastig in AST enumAleksey Kladov2019-02-242-0/+407
| |
* | Merge #890bors[bot]2019-02-242-6/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | 890: Clean up imports a bit r=flodiebold a=flodiebold Co-authored-by: Florian Diebold <[email protected]>
| * | Clean up imports a bitFlorian Diebold2019-02-242-6/+4
|/ /
* | Merge #889bors[bot]2019-02-2418-133/+182
|\| | | | | | | | | | | | | | | | | | | | | 889: Refactor assits r=matklad a=matklad * assign unique IDs to assists so that clients could do custom stuff * specify kinds for assists, * make introduce_variable a `refactoring.extract` and make it available only when expression is selected * introduce marks to assists Co-authored-by: Aleksey Kladov <[email protected]>
| * add marks to assistsAleksey Kladov2019-02-244-47/+41
| |
| * dont show introduce variable everywhereAleksey Kladov2019-02-242-46/+42
| |
| * Assign IDs to assistsAleksey Kladov2019-02-2416-43/+102
|/
* Merge #885bors[bot]2019-02-2410-47/+288
|\ | | | | | | | | | | | | | | 885: Parse token trees directy r=matklad a=matklad This takes advantage of the recent macro refactoring to directly parse token stream into a syntax tree. Co-authored-by: Aleksey Kladov <[email protected]>
| * renameAleksey Kladov2019-02-241-8/+8
| |
| * Add a test for macro parsingAleksey Kladov2019-02-232-10/+80
| |
| * implement tt -> astAleksey Kladov2019-02-232-5/+55
| |
| * keep-textAleksey Kladov2019-02-231-10/+17
| |
| * flatten ttAleksey Kladov2019-02-231-6/+55
| |
| * token source scaffoldAleksey Kladov2019-02-231-1/+22
| |
| * add dependency on the parserAleksey Kladov2019-02-232-0/+2
| |
| * add interfaceAleksey Kladov2019-02-231-0/+5
| |
| * introduce tree builderAleksey Kladov2019-02-233-20/+61
| |
| * renameAleksey Kladov2019-02-234-23/+19
| |
* | Merge #886bors[bot]2019-02-244-64/+98
|\ \ | | | | | | | | | | | | | | | | | | | | | 886: Associated method generics r=matklad a=flodiebold Refactor associated method resolution a bit and make it work with generics. Co-authored-by: Florian Diebold <[email protected]>
| * | Refactor associated method resolution a bit and make it work with genericsFlorian Diebold2019-02-234-64/+98
|/ /
* | Merge #884bors[bot]2019-02-235-1450/+1500
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 884: Split ty.rs into several modules r=matklad a=flodiebold It was just getting too big. We now have: - ty: the `Ty` enum and helpers - ty::infer: actual type inference - ty::lower: lowering from HIR to `Ty` - ty::op: helpers for binary operations, currently Co-authored-by: Florian Diebold <[email protected]>
| * | Split ty.rs into several modulesFlorian Diebold2019-02-235-1450/+1500
|/ / | | | | | | | | | | | | | | | | It was just getting too big. We now have: - ty: the `Ty` enum and helpers - ty::infer: actual type inference - ty::lower: lowering from HIR to `Ty` - ty::op: helpers for binary operations, currently
* | Merge #883bors[bot]2019-02-231-0/+79
|\ \ | | | | | | | | | | | | | | | | | | | | | 883: Fix fill_match_arms not working with references r=matklad a=vipentti This fixes #881 Co-authored-by: Ville Penttinen <[email protected]>
| * | Simplify test_fill_match_arm_refs test casesVille Penttinen2019-02-231-24/+0
| | |
| * | Fix fill_match_arms not working with referencesVille Penttinen2019-02-231-0/+103
| |/
* | Merge #882bors[bot]2019-02-231-4/+40
|\ \ | |/ |/| | | | | | | | | | | 882: emacs-lsp: Add runnables support r=matklad a=flodiebold Co-authored-by: Florian Diebold <[email protected]>
| * emacs-lsp: Add runnables supportFlorian Diebold2019-02-231-4/+40
|/
* Merge #879bors[bot]2019-02-233-11/+139
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 879: Fixes to goto definition r=vipentti a=vipentti Previously goto definition would fail when the cursor was over the name of the definition. Now we should properly resolve to a `NavigationTarget` when on top of the name of a definition. In addition this adds `name_range` field to `FileSymbol`, this further fixes goto_definition and symbol based navigation by allowing the `NavigationTarget` to actually have a `focus_range`, meaning instead of focusing on the start of the `full_range`, we can have the cursor focus on the name. e.g. goto definition ```rust fn bar() { fn foo() { } foo<|>(); } ``` Previously this would put the cursor at the start of the FN_DEF: ```rust fn bar() { <|>fn foo() { } foo(); } ``` Now when using the symbol based resolving, we'll have a proper focus range and instead put the cursor at the start of the name. ```rust fn bar() { fn <|>foo() { } foo(); } ``` This fixes #877 but doesn't contain the refactoring of the return type for `goto_definition` Co-authored-by: Ville Penttinen <[email protected]>
| * Remove unnecessary to_nav_targetVille Penttinen2019-02-231-16/+12
| |
| * Add name_range field to FileSymbolVille Penttinen2019-02-232-7/+17
| | | | | | | | | | | | This contains the syntax range of the name itself, allowing NavigationTarget to properly set the focus_range. This should make it so that when using symbol based navigation, we should always focus on the name, instead of the full range.
| * Fix NavigationTarget debug_render container_name outputVille Penttinen2019-02-231-1/+1
| |
| * Fix goto def not working when cursor was over the name of a defVille Penttinen2019-02-232-4/+126
| | | | | | | | | | We now allow goto_definition to return the named NavigationTarget if the cursor is on the name of a definition.