aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/hover.rs
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1394bors[bot]2019-06-111-6/+23
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1394: Fix hover for pat that shadows items r=matklad a=sinkuu ```rust fn x() {} fn y() { let x = 0i32; x; // hover on `x` is expected to be `i32`, but the actual result was `fn x()` } ``` This was because: if [`res.is_empty()`](https://github.com/sinkuu/rust-analyzer/blob/656a0fa9f99298123d7dcee8c65a8a5ed7043bc4/crates/ra_ide_api/src/hover.rs#L205), it fallbacks to "index based approach" and adds `fn x()` to `res`, which makes [`res.extend(type_of)` below](https://github.com/sinkuu/rust-analyzer/blob/656a0fa9f99298123d7dcee8c65a8a5ed7043bc4/crates/ra_ide_api/src/hover.rs#L260-L266) not happen. Co-authored-by: Shotaro Yamada <[email protected]>
| * Fix hover for pat that shadows itemsShotaro Yamada2019-06-111-6/+23
| |
* | remove inherent source implsAleksey Kladov2019-06-111-2/+2
| |
* | use Source for module, part 1Aleksey Kladov2019-06-111-2/+1
| |
* | use Source for StructFieldAleksey Kladov2019-06-111-2/+2
| |
* | use Source for MacroDefAleksey Kladov2019-06-111-2/+2
| |
* | use Source for TraitAleksey Kladov2019-06-111-8/+2
| |
* | simplifyAleksey Kladov2019-06-111-5/+5
| |
* | use Source for TypeAliasAleksey Kladov2019-06-111-12/+6
| |
* | reduce duplication in hoverAleksey Kladov2019-06-111-56/+24
| |
* | use Source for statics and constsAleksey Kladov2019-06-111-6/+6
| |
* | use Source for FunctionAleksey Kladov2019-06-111-6/+6
| |
* | use Source moreAleksey Kladov2019-06-111-6/+9
| |
* | introduce Source structAleksey Kladov2019-06-111-4/+7
|/
* Simpliy hover on ast::nameEdwin Cheng2019-06-101-7/+35
|
* Use classify_name_ref in hoverEdwin Cheng2019-06-101-12/+128
|
* Remove node function in NavTargetEdwin Cheng2019-06-081-3/+3
|
* Fix clippy::new_without_defaultAlan Du2019-06-041-0/+6
|
* Sort hover results in testsLaurențiu Nicola2019-05-301-2/+8
|
* fix typos in mbe testsAleksey Kladov2019-05-281-2/+2
|
* Fix hover on the beginning of a nested expressionFlorian Diebold2019-04-281-7/+14
| | | | | | | | | | | | | | | | E.g. in ``` let foo = 1u32; if true { <|>foo; } ``` the hover shows `()`, the type of the whole if expression, instead of the more sensible `u32`. The reason for this was that the search for an expression was slightly left-biased: When on the edge between two tokens, it first looked at all ancestors of the left token and then of the right token. Instead merge the ancestors in ascending order, so that we get the smaller of the two possible expressions.
* use really correct resolver for expressionsAleksey Kladov2019-04-121-1/+1
|
* renameAleksey Kladov2019-04-111-1/+1
|
* introduce SourceAnalyzerAleksey Kladov2019-04-111-10/+8
|
* Move display related things from hover to displayVille Penttinen2019-04-091-107/+3
|
* Move completion label functions to displayVille Penttinen2019-04-091-1/+1
|
* switch to new rowanAleksey Kladov2019-04-011-6/+8
|
* replace todo with fixmeAleksey Kladov2019-03-231-1/+1
|
* Remove the old variants replaced by Ty::ApplyFlorian Diebold2019-03-211-16/+1
|
* Replace Display by a pretty printing trait for TyFlorian Diebold2019-03-161-2/+3
| | | | | This allows removing the names from Adt and FnDef (and more later), as a first step towards aligning more with chalk's Ty :)
* Remove superfluous semicolonskjeremy2019-03-081-5/+5
| | | | | Doesn't change the result of the test but it does prevent the syntax tree from rendering.
* Use ast::Name::text() instead of name().syntax().text()Ville Penttinen2019-03-071-2/+2
|
* Fix EnumVariants not showing properly when hoveringVille Penttinen2019-03-071-2/+56
| | | | This fixes documentation as well for EnumVariants
* Add support for goto definition and hover on SelfVille Penttinen2019-03-071-0/+58
| | | | This fixes #943
* Hover for associated items in patternskjeremy2019-03-061-0/+23
|
* Use ImplItems instead of just FunctionJeremy Kolb2019-03-041-1/+1
|
* Make goto definition/hover resolve constructorskjeremy2019-03-041-0/+22
|
* Represent unknown types as {unknown} instead of [unknown]Florian Diebold2019-03-031-1/+1
| | | | Since the latter could actually be a real type...
* Merge #908bors[bot]2019-03-021-8/+27
|\ | | | | | | | | | | | | | | | | | | | | 908: Enable markup for hover on expressions which resolve using type_of r=matklad a=vipentti This adds highlighting when hovering over items which are resolved using `type_of`. This adds basic highlighting, discussed in #904. Co-authored-by: Ville Penttinen <[email protected]>
| * Enable markup for hover on expressions which resolve using type_ofVille Penttinen2019-02-281-8/+27
| | | | | | | | | | This adds highlighting when hovering over items which are resolved using `type_of`.
* | rename syntax_mapping as wellAleksey Kladov2019-03-021-3/+3
| |
* | rename syntax-mapping -> source-mapAleksey Kladov2019-03-021-1/+1
| |
* | Update hover message since we do support globskjeremy2019-02-281-1/+1
|/
* Enable hover support for NamedFieldDefsVille Penttinen2019-02-271-3/+79
| | | | Additionally add type ascription for const and statics as well.
* Add support for hovering over the name of an itemVille Penttinen2019-02-271-1/+27
|
* Replace visit_fn with crate::completion::function_labelVille Penttinen2019-02-261-43/+2
|
* Add new type HoverResult to contain the results of hoveringVille Penttinen2019-02-261-14/+146
| | | | | This makes testing hovers easier as well as allows us to do more things with the results if needed.
* Add support for showing fn signature when hoveringVille Penttinen2019-02-261-3/+43
|
* rename type to type_alias in the AST as wellAleksey Kladov2019-02-251-2/+2
|
* Merge #866bors[bot]2019-02-221-0/+20
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 866: Implement basic support for Associated Methods r=flodiebold a=vipentti This is my attempt at learning to understand how the type inference works by adding basic support for associated methods. Currently it does not resolve associated types or constants. The basic idea is that `Resolver::resolve_path` returns a new `PathResult` type, which has two variants, `FullyResolved` and `PartiallyResolved`, fully resolved matches the previous behavior, where as `PartiallyResolved` contains the `PerNs<Resolution` in addition to a `segment_index` which contains the index of the segment which we failed to resolve. This index can then be used to continue inference in `infer_path_expr` using the `Type` we managed to resolve. This changes some of the previous apis, so looking for feedback and suggestions. This should enable fixing #832 Co-authored-by: Ville Penttinen <[email protected]>