aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge #1034bors[bot]2019-03-251-30/+57
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1034: HIR diagnostics API r=matklad a=matklad This PR introduces diagnostics API for HIR, so we can now start issuing errors and warnings! Here are requirements that this solution aims to fulfill: * structured diagnostics: rather than immediately rendering error to string, we provide a well-typed blob of data with error-description. These data is used by IDE to provide fixes * open set diagnostics: there's no single enum with all possible diagnostics, which hopefully should result in better modularity The `Diagnostic` trait describes "a diagnostic", which can be downcast to a specific diagnostic kind. Diagnostics are expressed in terms of macro-expanded syntax tree: they store pointers to syntax nodes. Diagnostics are self-contained: you don't need any context, besides `db`, to fully understand the meaning of a diagnostic. Because diagnostics are tied to the source, we can't store them in salsa. So subsystems like type-checking produce subsystem-local diagnostic (which is a closed `enum`), which is expressed in therms of subsystem IR. A separate step converts these proto-diagnostics into `Diagnostic`, by merging them with source-maps. Note that this PR stresses type-system quite a bit: we now type-check every function in open files to compute errors! Discussion on Zulip: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Diagnostics.20API Co-authored-by: Aleksey Kladov <[email protected]>
| * move tests to where they belongAleksey Kladov2019-03-251-0/+31
| |
| * simplifyAleksey Kladov2019-03-251-6/+1
| |
| * tweak diagnostics APIAleksey Kladov2019-03-251-2/+2
| |
| * more enterprisey diagnostics setupAleksey Kladov2019-03-251-49/+30
| |
| * fixesAleksey Kladov2019-03-251-3/+2
| |
| * check impls as wellAleksey Kladov2019-03-251-0/+9
| |
| * cleanupAleksey Kladov2019-03-251-2/+2
| |
| * switch modules to new diagnosticsAleksey Kladov2019-03-251-36/+30
| |
| * allow dyn diagnosticsAleksey Kladov2019-03-251-18/+8
| |
| * diagnosticsAleksey Kladov2019-03-251-1/+29
| |
* | structure moved to ra_ide_apiSergey Parilin2019-03-253-6/+377
|/ | | | ra_ide_api_light removed completely
* Rename source_edit to source_file_edit to match file_system_editVille Penttinen2019-03-255-11/+11
|
* Further improvements to the SourceChange convenience methodsVille Penttinen2019-03-254-27/+50
| | | | | Rename system_edit to file_system_edit, add more documentation, add source_file_edit_from to create a SourceChange from `FileId` and `TextEdit`.
* Add convenience functions to SourceChange for creating single editsVille Penttinen2019-03-244-44/+63
|
* Merge #1031bors[bot]2019-03-236-31/+594
|\ | | | | | | | | | | | | | | | | | | 1031: Move most things out of ra_ide_api_light r=matklad a=detrumi This moves everything except `structure` out of `ra_ide_api_light`. So this PR and #1019 finish up #1009, whichever is merged last should probably remove the `ra_ide_api_light` crate. Also, `LocalEdit` was removed since it wasn't used any more. Co-authored-by: Wilco Kusee <[email protected]>
| * Move highlighting and matching_braceWilco Kusee2019-03-235-11/+165
| |
| * Remove LocalEdit usageWilco Kusee2019-03-232-55/+55
| |
| * Move typing to ra_ide_apiWilco Kusee2019-03-232-3/+412
| |
* | remove obsolete diagnosticAleksey Kladov2019-03-231-21/+0
| |
* | rename persistent hir database -> def databaseAleksey Kladov2019-03-231-1/+1
|/
* replace todo with fixmeAleksey Kladov2019-03-237-7/+7
|
* Simplify changes and fix testsWilco Kusee2019-03-223-19/+15
|
* Remove LocalEdit usageWilco Kusee2019-03-222-16/+17
|
* Move join_lines to ra_ide_apiWilco Kusee2019-03-223-4/+616
|
* Move folding_ranges to ra_ide_apiSergey Parilin2019-03-222-2/+330
|
* line_index and line_index_utils moved to ra_ide_apiSergey Parilin2019-03-223-1/+614
|
* Rename name field to ctor as wellFlorian Diebold2019-03-211-1/+1
|
* TypeName => TypeCtorFlorian Diebold2019-03-211-3/+3
|
* Remove the old variants replaced by Ty::ApplyFlorian Diebold2019-03-214-42/+22
|
* cleanupAleksey Kladov2019-03-211-68/+73
|
* move diagnostics to ide_apiAleksey Kladov2019-03-211-10/+250
|
* move extend selection from ra_ide_api_light to ra_ide_apiAleksey Kladov2019-03-201-6/+371
|
* introduce Analysis::from_single_fileAleksey Kladov2019-03-201-0/+17
|
* remove old macro supportAleksey Kladov2019-03-172-78/+4
|
* remove lower moduleAleksey Kladov2019-03-172-9/+4
|
* Replace module_tree with CrateDefMapAleksey Kladov2019-03-171-1/+1
|
* Replace Display by a pretty printing trait for TyFlorian Diebold2019-03-162-6/+10
| | | | | This allows removing the names from Adt and FnDef (and more later), as a first step towards aligning more with chalk's Ty :)
* sort navigations to make tests stableAleksey Kladov2019-03-141-1/+2
|
* 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-073-2/+165
| | | | This fixes #943
* Use source mapkjeremy2019-03-061-14/+9
|
* Hover for associated items in patternskjeremy2019-03-062-8/+55
|
* dont produce giant debug dumpsAleksey Kladov2019-03-051-1/+8
|
* Make ExpOrPatId privatekjeremy2019-03-041-1/+1
|
* FormatJeremy Kolb2019-03-041-7/+2
|
* Add NavigationTarget::from_impl_itemJeremy Kolb2019-03-042-14/+22
|
* Use ImplItems instead of just FunctionJeremy Kolb2019-03-042-6/+17
|