aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src
Commit message (Collapse)AuthorAgeFilesLines
* cancel salsa's validationAleksey Kladov2019-05-301-0/+5
| | | | | | | | | | | | | | | | | | | This small fix should improve rust-analyzer resopnsivness for real-time operations like onEnter handling. Turns out, salsa's validation can take hundreds of milliseconds, and, in case no changes were made, it won't be triggering any queries. Because we check for cancellation in queries, that means that validation is not cancellable! What this PR does is injecting check_canceled checks into validation, by using salsa's event API, which wasn't meant to be used like this, but, hey, it works! Here's the onEnter handling before and after this change: https://youtu.be/7-ffPzgvH7o
* Highlight primitive typesLaurențiu Nicola2019-05-292-42/+55
|
* Merge #1337bors[bot]2019-05-2924-69/+68
|\ | | | | | | | | | | | | | | 1337: Move syntax errors our of syntax tree r=matklad a=matklad I am not really sure if it's a good idea, but `SyntaxError` do not really belong to a `SyntaxTree`. So let's just store them on the side? Co-authored-by: Aleksey Kladov <[email protected]>
| * fix todoAleksey Kladov2019-05-281-3/+0
| |
| * fix typos in mbe testsAleksey Kladov2019-05-2824-68/+70
| |
* | Highlight type names correctlyLaurențiu Nicola2019-05-292-3/+20
|/
* Merge #1334bors[bot]2019-05-271-0/+4
|\ | | | | | | | | | | | | | | 1334: check for cancellation during macro expansion r=matklad a=matklad closes #1331 Co-authored-by: Aleksey Kladov <[email protected]>
| * specifically profile cancellationAleksey Kladov2019-05-271-0/+4
| |
* | make it build againPascal Hertleif2019-05-271-12/+26
| |
* | Disable broken struct field rainbowingPascal Hertleif2019-05-273-23/+7
| |
* | More clever highlighting, incl draft for structsPascal Hertleif2019-05-276-407/+151
| |
* | Hash based on binding name and shadow counterPascal Hertleif2019-05-273-20/+75
| |
* | Semantic highlighting spikePascal Hertleif2019-05-273-35/+345
|/ | | | | | | | | | Very simple approach: For each identifier, set the hash of the range where it's defined as its 'id' and use it in the VSCode extension to generate unique colors. Thus, the generated colors are per-file. They are also quite fragile, and I'm not entirely sure why. Looks like we need to make sure the same ranges aren't overwritten by a later request?
* Colorize Rust code as HTMLAleksey Kladov2019-05-254-152/+131
|
* :arrow_up: rustcAleksey Kladov2019-05-2358-610/+640
|
* profile highlightingAleksey Kladov2019-05-231-0/+3
|
* add union to code_modelAleksey Kladov2019-05-234-0/+11
|
* Improve highlighting of name refsLaurențiu Nicola2019-05-232-9/+168
|
* Move NameRef classification logic out of reference_definitionLaurențiu Nicola2019-05-234-97/+143
|
* Address feedbackLaurențiu Nicola2019-05-211-4/+11
|
* Use ThemeColor and add support for light themesLaurențiu Nicola2019-05-211-1/+11
|
* apply T! macro where it is possibleSergey Parilin2019-05-155-13/+13
|
* expand to syntax nodeAleksey Kladov2019-05-141-1/+1
|
* make AstId untypedAleksey Kladov2019-05-133-5/+5
|
* Merge #1257bors[bot]2019-05-131-1/+2
|\ | | | | | | | | | | | | | | 1257: Implemented tkn! macro for syntax kinds r=matklad a=pasa Implementation of #1248 Co-authored-by: Sergey Parilin <[email protected]>
| * Implemented T! macro for syntax kindsSergey Parilin2019-05-131-1/+2
| |
* | simplifyAleksey Kladov2019-05-121-1/+1
|/
* fill struct fields diagnosticSergey Parilin2019-05-061-1/+122
|
* Profile diagnostics.Marco Groppo2019-05-051-0/+2
|
* Merge #1208bors[bot]2019-05-044-0/+52
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1208: [WIP] Goto for Macro's r=matklad a=Lapz Adds goto definition for macros. Currently only works for macros in the current crate ~~otherwise it panics~~. Proper macro resolution needs to be added for it to resolve macros in other crates. Todo - [X] Allow goto from macro calls - [X] Fix panics - [x] Add tests ![Screen Recording 2019-04-25 at 18 00 24](https://user-images.githubusercontent.com/19998186/56754499-1dd01c00-6785-11e9-9e9a-1e36de70cfa3.gif) Co-authored-by: Lenard Pratt <[email protected]>
| * Added local macro gotoLenard Pratt2019-05-044-0/+52
| |
* | Differentiate Tuple / FnPtr type constructors by cardinalityFlorian Diebold2019-05-041-1/+1
| | | | | | | | | | This is necessary because Chalk (reasonably) expects each 'struct' to know how many type parameters it takes.
* | revert eagarly clean astd mapsAleksey Kladov2019-05-041-6/+1
| | | | | | | | This causes massive slowdown :-(
* | eagarly clean astd mapsAleksey Kladov2019-05-041-0/+6
|/
* Fix hover on the beginning of a nested expressionFlorian Diebold2019-04-282-7/+15
| | | | | | | | | | | | | | | | 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.
* simplify matchkjeremy2019-04-241-4/+1
|
* See through referenceskjeremy2019-04-241-2/+20
|
* Merge #1200bors[bot]2019-04-231-18/+70
|\ | | | | | | | | | | | | | | 1200: Allows searching for case-equivalent symbols (fixes #1151) r=matklad a=jrvidal I couldn't find a nice, functional way of calculating the ranges in one pass so I resorted to a plain old `for` loop. Co-authored-by: Roberto Vidal <[email protected]>
| * CR correctionsRoberto Vidal2019-04-231-2/+2
| |
| * Allows searching for case-equivalent symbols (fixes #1151)Roberto Vidal2019-04-231-18/+70
| |
* | Simplifykjeremy2019-04-231-5/+3
| |
* | Basic resolution for ADTkjeremy2019-04-232-0/+76
|/
* Merge #1194bors[bot]2019-04-222-6/+118
|\ | | | | | | | | | | | | | | | | 1194: Pr 1190 r=matklad a=matklad Co-authored-by: Andrea Pretto <[email protected]> Co-authored-by: Aleksey Kladov <[email protected]>
| * remove path_ident from CompletionContextAleksey Kladov2019-04-222-39/+38
| | | | | | | | | | | | | | | | | | We really shouldn't be looking at the identifier at point. Instead, all filtering and sorting should be implemented at the layer above. This layer should probably be home for auto-import completions as well, but, since that is not yet implemented, let's just stick this into complete_scope.
| * move auto-imoprter into IDEAleksey Kladov2019-04-222-13/+54
| | | | | | | | | | auto-import is purely an IDE concern, so it should be done outside of HIR
| * complete_import: prevent panic when the anchor is the completion source rangeAndrea Pretto2019-04-211-7/+17
| | | | | | | | | | | | (fix rebase mess) Please enter the commit message for your changes. Lines starting
| * complete_import: add new import resolver infrastructure with some hardcoded ↵Andrea Pretto2019-04-212-8/+70
| | | | | | | | | | | | importable name. Changes complete_scope to support that.
* | fix postfix match indentAleksey Kladov2019-04-222-4/+4
|/
* New krate() method in Resolver.Marco Groppo2019-04-191-2/+2
| | | | Renamed Impl to ImplBlock.
* Initial support for lang items.Marco Groppo2019-04-191-10/+13
|