aboutsummaryrefslogtreecommitdiff
path: root/crates/ide
Commit message (Collapse)AuthorAgeFilesLines
* Don't expose SyntaxKind from IDE APIAleksey Kladov2020-12-1810-207/+270
| | | | | | SyntaxKind is somewhat of an internal type, but IDE is using it to basically specify an icon. Let's have a dedicated entity for this instead.
* Cleaup importsAleksey Kladov2020-12-181-7/+7
| | | | ide should re-export everything it needs.
* Merge #6901bors[bot]2020-12-182-1/+15
|\ | | | | | | | | | | | | | | | | | | 6901: Temp fixes panic caused by no ast for proc-macro r=maklad a=edwin0cheng There are some panic when hover/goto definition for proc-macro. It is because in current design, we don't have `ast-node` for proc-macro and then it trigger [this](https://github.com/rust-analyzer/rust-analyzer/blob/479d1f7eec22c3564867223e2093f14774092528/crates/hir/src/has_source.rs#L116) line to panic. This PR is a temp fix for all of these similar to https://github.com/rust-analyzer/rust-analyzer/blob/bd4c352831662762ee7a66da77ec9adf623b0a0a/crates/completion/src/render/macro_.rs#L42 Co-authored-by: Edwin Cheng <[email protected]>
| * Temp fixes panic caused by no ast for proc-macroEdwin Cheng2020-12-182-1/+15
| |
* | Rewrite doctest runnablesAleksey Kladov2020-12-172-107/+83
| | | | | | | | Handle more cases in a generic way without copy-pasting code.
* | Minor code styleAleksey Kladov2020-12-171-27/+19
| |
* | Make `Attrs::from_attrs_owner` privateJonas Schievink2020-12-172-39/+11
| |
* | Rename ImplDef -> ImplAleksey Kladov2020-12-175-7/+7
| | | | | | | | | | | | We used to have `Def` suffix for all symbols, but we moved off from that. `FunctionDef` isn't better than `Function`. Looks like we've forgot to change `Impl` though!
* | Lifetime reference searchLukas Wirth2020-12-168-22/+265
| |
* | Node-ify lifetimesLukas Wirth2020-12-161-1/+1
| |
* | Make macro def krate mandatoryJonas Schievink2020-12-153-1/+9
|/ | | | Refactors builtin derive support to go through proper name resolution
* Move to upstream `macro_rules!` modelJonas Schievink2020-12-156-41/+41
|
* Add find usages for enum constructorsDaiki Ihara2020-12-141-0/+115
|
* Use Attrs::docs in NavigationTarget instead of DocCommentsOwnerLukas Wirth2020-12-111-24/+28
|
* Merge #6834bors[bot]2020-12-111-9/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | 6834: Use Attrs::docs in runnables instead of DocCommentsOwner r=kjeremy a=Veykril I figured that we should probably move as much of the doc usage to the HIR as possible hence this PR. If we should keep this AST-based feel free to close. This change does have the nice(but not really useful as I doubt anyones gonna write doc tests like these) side effect that these two doc string snippets allow being run now. ![image](https://user-images.githubusercontent.com/3757771/101945607-bf241400-3bee-11eb-96ce-ccae80028b1f.png) ![image](https://user-images.githubusercontent.com/3757771/101946375-2e9a0380-3bef-11eb-9950-e35168fdd048.png) Co-authored-by: Lukas Wirth <[email protected]>
| * Use Attrs::docs in runnables instead of DocCommentsOwnerLukas Wirth2020-12-111-9/+9
| |
* | Don't highlight parent nodes of comments on hoverLukas Wirth2020-12-111-0/+16
|/
* Merge #6769bors[bot]2020-12-102-1/+25
|\ | | | | | | | | | | | | | | | | | | 6769: Add native "remove this semicolon" diagnostics r=matklad a=ivan770 Closes #6739 ![demo2](https://user-images.githubusercontent.com/14003886/101530533-b76c3180-399a-11eb-9d18-5c8457721655.gif) Co-authored-by: ivan770 <[email protected]>
| * Cast to ExprStmt, style fixesivan7702020-12-101-4/+4
| |
| * Format codeivan7702020-12-081-3/+10
| |
| * Remove unused useivan7702020-12-081-1/+1
| |
| * Remove this semicolonivan7702020-12-082-6/+23
| |
* | Fix FileId computation in IncorrectCase fixJonas Schievink2020-12-101-4/+4
| |
* | Introduce anchored_pathAleksey Kladov2020-12-093-30/+45
| | | | | | | | | | They allow to represent paths like `#[path = "C:\path.rs"] mod foo;` in a lossless cross-platform & network-transparent way.
* | Merge #6771bors[bot]2020-12-091-0/+62
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6771: Properly attach inner attributes in Attrs::new r=matklad a=Veykril Properly attach inner and outer attributes to the things they actually belong to in the HIR. ~~I can add some tests for this if wanted once I know where to put them/how to test for this.~~ Put some tests into `hover.rs`. So the following snippet ```rust mod foo { //! Hello } ``` now shows `Hello` on hover 🎉 Fixes #2148 Co-authored-by: Lukas Wirth <[email protected]>
| * | Test inner and outer doc comments in hoverLukas Wirth2020-12-091-0/+62
| |/
* | Merge #6775bors[bot]2020-12-091-2/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | 6775: Fix MissingFields DiagnosticFix trigger range r=lnicola a=Veykril Fixes #5950 Co-authored-by: Lukas Wirth <[email protected]>
| * | Fix MissingFields DiagnosticFix trigger rangeLukas Wirth2020-12-091-2/+3
| |/
* / Make `original_range` a method on `InFile<&SyntaxNode>`Jonas Schievink2020-12-081-11/+12
|/
* Merge #6750bors[bot]2020-12-081-28/+36
|\ | | | | | | | | | | | | | | | | | | | | | | 6750: Remove documentation query, move doc handling to attributes r=matklad a=Veykril Fixes #3182 Removes the documentation query in favor of `Attrs::docs`. Attrs already handlded doc comments partially but the alloc saving check was wrong so it only worked when other attributes existed as well. Unfortunately the `new` constructor has to do an intermediate allocation now because we need to keep the order of mixed doc attributes and doc comments. I've also partially adjusted the `hover` module to have its tests check the changes, it still has some `HasSource` trait usage due to the `ShortLabel` trait usage, as that is only implemented on the Ast parts and not the Hir, should this ideally be implemented for the Hir types as well?(would be a follow up PR of course) Co-authored-by: Lukas Wirth <[email protected]>
| * Remove hir_def/docs.rs moduleLukas Wirth2020-12-071-28/+36
| |
* | SimplifyKirill Bulatov2020-12-071-1/+0
| |
* | Use stateless completion resolveKirill Bulatov2020-12-071-0/+22
| |
* | Remove the stateKirill Bulatov2020-12-071-1/+1
| |
* | Make completion resolve asyncKirill Bulatov2020-12-071-1/+1
| |
* | Simplify import edit calculationKirill Bulatov2020-12-071-1/+1
| |
* | Properly fill client completion resolve capabilities dataKirill Bulatov2020-12-071-2/+2
| |
* | Working resolve completion imports prototypeKirill Bulatov2020-12-071-1/+2
|/
* Merge #6719bors[bot]2020-12-071-7/+6
|\ | | | | | | | | | | | | | | 6719: Use items can also have doc comments r=matklad a=Veykril Prior to this change modules show more docs than they have cause they inherit the docs from documented use items inside of them. Co-authored-by: Lukas Wirth <[email protected]>
| * Use items can also have doc commentsLukas Wirth2020-12-041-7/+6
| |
* | Don't insert blank lines between doc attributesLukas Wirth2020-12-071-2/+0
| |
* | Merge #6721bors[bot]2020-12-047-37/+44
|\ \ | | | | | | | | | | | | | | | | | | | | | 6721: Use METHOD semantic token type r=kjeremy a=lnicola Closes #6685 Co-authored-by: LaurenČ›iu Nicola <[email protected]>
| * | Use METHOD semantic token typeLaurențiu Nicola2020-12-047-37/+44
| |/
* / Don't diagnose `#[cfg]` in macrosJonas Schievink2020-12-031-0/+5
|/
* Merge #6673bors[bot]2020-12-021-45/+74
|\ | | | | | | | | | | | | | | 6673: Show type of Self on hover r=matklad a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
| * Show type of Self on hoverLukas Wirth2020-11-291-45/+74
| |
* | Type-safer API for dealing with parameter lists with optional selfAleksey Kladov2020-12-011-1/+1
| |
* | Merge #6665bors[bot]2020-11-291-1/+102
|\ \ | | | | | | | | | | | | | | | | | | | | | 6665: Support self in reference search r=matklad a=Veykril The approach here is simply checking the descendants of the function body for `PathExpr` then checking whether it only contains a single `self` `PathSegment`, this is to prevent us from picking up `self` tokens from local `UseTree`s. Co-authored-by: Lukas Wirth <[email protected]>
| * | Support self in reference searchLukas Wirth2020-11-291-1/+102
| | |
* | | Merge #6599bors[bot]2020-11-294-10/+23
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6599: Add attribute highlight modifier to all tokens inside attributes r=matklad a=Veykril This has the side effect that we also emit `attribute.attribute` highlights now, as in, the tokens that get the attribute semantic type also get the attribute modifier. I personally don't think it's really a problem but maybe it is to some? It's just that it was really simple to implement it this way, which is why I just went this route for now. Fixes #6536 Co-authored-by: Lukas Wirth <[email protected]>