aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src
Commit message (Collapse)AuthorAgeFilesLines
* More clever highlighting, incl draft for structsPascal Hertleif2019-05-271-4/+0
|
* Hash based on binding name and shadow counterPascal Hertleif2019-05-271-1/+6
|
* Semantic highlighting spikePascal Hertleif2019-05-271-0/+4
| | | | | | | | | | 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?
* Change TokenSource to iteration basedEdwin Cheng2019-05-253-17/+38
|
* add is_union to structs ASTAleksey Kladov2019-05-201-1/+17
|
* :arrow_up: text_unitAleksey Kladov2019-05-151-39/+26
|
* apply T! macro where it is possibleSergey Parilin2019-05-156-87/+86
|
* make AstId untypedAleksey Kladov2019-05-132-8/+9
|
* Merge #1257bors[bot]2019-05-131-0/+1
|\ | | | | | | | | | | | | | | 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-0/+1
| |
* | Handle auto traits & negative implsFlorian Diebold2019-05-111-0/+10
| | | | | | | | | | We don't pass field types to Chalk yet though, so the auto trait inference won't be correct.
* | share literal validation logic with compilerAleksey Kladov2019-05-079-1198/+620
|/
* fill struct fields diagnosticSergey Parilin2019-05-062-6/+9
|
* Merge #1208bors[bot]2019-05-042-1/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-042-1/+2
| |
* | Revert "eagarly clean astd maps"Aleksey Kladov2019-05-041-1/+1
| | | | | | | | | | | | This reverts commit 6c63a59425e256ce46d058807b64149297231982. This causes massive slowdowns: looks like we accidentally have some source-depndent
* | eagarly clean astd mapsAleksey Kladov2019-05-041-1/+1
| |
* | Add default type param in TypeParam NodeEdwin Cheng2019-05-033-1/+8
|/
* Merge #1213bors[bot]2019-04-281-59/+12
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1213: Make lexer produce only single character puncts r=matklad a=edwin0cheng As discussed in Zulip, this PR change `lexer` to produce only single char punct. * Remove producing `DOTDOTDOT, DOTDOTEQ, DOTDOT, COLONCOLON, EQEQ, FAT_ARROW, NEQ, THIN_ARROW` in lexer. * Add required code in parser to make sure everythings works fine. * Change some tests (Mainly because the `ast::token_tree` is different) Note: i think the use of `COLON` in rust is too overloaded :) Co-authored-by: Edwin Cheng <[email protected]>
| * Refactor parser handle mult-char punct internallyEdwin Cheng2019-04-281-59/+12
| |
* | Fix hover on the beginning of a nested expressionFlorian Diebold2019-04-281-3/+18
|/ | | | | | | | | | | | | | | | 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.
* move add_missing_members to structured editing APIAleksey Kladov2019-04-222-17/+53
| | | | | Currently, this is more code, and we also loose auto-indenting of bodies, but, long-term, this is the right approach
* test short structsAleksey Kladov2019-04-211-0/+1
|
* start structured editing APIAleksey Kladov2019-04-213-3/+82
|
* Merge #1154bors[bot]2019-04-203-1/+16
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1154: Initial support for lang items (and str completion) r=flodiebold a=marcogroppo This PR adds partial support for lang items. For now, the only supported lang items are the ones that target an impl block. Lang items are now resolved during type inference - this means that `str` completion now works. Fixes #1139. (thanks Florian Diebold for the help!) Co-authored-by: Marco Groppo <[email protected]>
| * Initial support for lang items.Marco Groppo2019-04-193-1/+16
| |
* | Add MacroItems and MacroStmts in grammer.ronEdwin Cheng2019-04-182-0/+81
|/
* Merge #1138bors[bot]2019-04-141-0/+2
|\ | | | | | | | | | | | | | | | | | | | | 1138: Add L_DOLLAR and R_DOLLAR r=matklad a=edwin0cheng As discussion in issue https://github.com/rust-analyzer/rust-analyzer/issues/1132 and PR #1125 , this PR add 2 `Syntax::Kind` : `L_DOLLAR` and `R_DOLLAR` for representing `Delimiter::None` in mbe and proc_marco. By design, It should not affect the final syntax tree, and will be discard in `TreeSink`. My original idea is handling these 2 tokens case by case, but i found that they will appear in every place in the parser (imagine `tt` matcher). So this PR only handle it in `Parser::do_bump` and `Parser::start`, although It will not fix the `expr` matcher executing order problem in original idea. Co-authored-by: Edwin Cheng <[email protected]>
| * Add L_DOLLAR and R_DOLLAREdwin Cheng2019-04-111-0/+2
| |
* | replace usages of `algo::generate` with `iter::successors` from stdRobin Freyler2019-04-133-18/+10
| |
* | migrate to untyped rowanAleksey Kladov2019-04-096-154/+152
|/
* updated snapshotsLenard Pratt2019-04-074-8/+3
|
* Added ArrayExprKind,Lenard Pratt2019-04-072-2/+24
| | | | | changed the display for fixed array types, Added Array Enum to ra_hir/expr
* Added inference of array lengthLenard Pratt2019-04-072-1/+6
|
* Parse and infer tuple indicesrobojumper2019-04-065-6/+48
|
* Add proper test for literals and fixed typo bugEdwin Cheng2019-04-051-1/+1
|
* Add classify_literal and undo expose next_tokenEdwin Cheng2019-04-053-2/+11
|
* Fix literal support in token tree to ast item listEdwin Cheng2019-04-052-2/+2
|
* Merge #1076bors[bot]2019-04-022-2/+12
|\ | | | | | | | | | | | | | | | | 1076: Const body inference r=flodiebold a=Lapz This is the second part of #887. I've added type inference on const bodies and introduced the DefWithBody containing Function, Const and Static. I want to add tests but im unsure on how I would go about testing that completions work. Co-authored-by: Lenard Pratt <[email protected]>
| * Added const bodies and static body to the astLenard Pratt2019-04-022-5/+12
| | | | | | | | | | | | and added inference the inference test reduce code duplication
| * Added defWithBodyLenard Pratt2019-03-302-0/+3
| |
* | simplifyAleksey Kladov2019-04-027-400/+336
| |
* | Merge #1090bors[bot]2019-04-021-11/+10
|\ \ | | | | | | | | | | | | | | | | | | | | | 1090: always show token text r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | always show token textAleksey Kladov2019-04-021-11/+10
| | |
* | | fix inner block doc commentsAleksey Kladov2019-04-021-1/+1
|/ /
* | add minimal commentsAleksey Kladov2019-04-025-0/+13
| |
* | rename flavor to kindAleksey Kladov2019-04-023-26/+26
| |
* | move extensions to submodulesAleksey Kladov2019-04-023-549/+566
| |
* | remove flavorAleksey Kladov2019-04-021-4/+4
| |
* | More future-proof comment kindAleksey Kladov2019-04-022-33/+52
| |