aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
Commit message (Collapse)AuthorAgeFilesLines
...
* | Switch to TryFromAleksey Kladov2020-04-255-24/+31
| |
* | Convert tests to text-sizeAleksey Kladov2020-04-25335-22878/+22878
| |
* | Convert code to text-sizeAleksey Kladov2020-04-2514-66/+60
| |
| |
| \
*-. \ Merge #3998 #4006bors[bot]2020-04-242-1/+369
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3998: Make add_function generate functions in other modules via qualified path r=matklad a=TimoFreiberg Additional feature for #3639 - [x] Add tests for paths with more segments - [x] Make generating the function in another file work - [x] Add `pub` or `pub(crate)` to the generated function if it's generated in a different module - [x] Make the assist jump to the edited file - [x] Enable file support in the `check_assist` helper 4006: Syntax highlighting for format strings r=matklad a=ltentrup I have an implementation for syntax highlighting for format string modifiers `{}`. The first commit refactors the changes in #3826 into a separate struct. The second commit implements the highlighting: first we check in a macro call whether the macro is a format macro from `std`. In this case, we remember the format string node. If we encounter this node during syntax highlighting, we check for the format modifiers `{}` using regular expressions. There are a few places which I am not quite sure: - Is the way I extract the macro names correct? - Is the `HighlightTag::Attribute` suitable for highlighting the `{}`? Let me know what you think, any feedback is welcome! Co-authored-by: Timo Freiberg <[email protected]> Co-authored-by: Leander Tentrup <[email protected]> Co-authored-by: Leander Tentrup <[email protected]>
| | * Adapt format specifier highlighting to support escaped squences and unicode ↵Leander Tentrup2020-04-221-122/+158
| | | | | | | | | | | | identifiers
| | * Apply suggestions from code reviewLeander Tentrup2020-04-221-30/+29
| | | | | | | | | | | | Co-Authored-By: bjorn3 <[email protected]>
| | * Implement syntax highlighting for format stringsLeander Tentrup2020-04-201-0/+324
| | | | | | | | | | | | | | | | | | | | | Detailed changes: 1) Implement a lexer for string literals that divides the string in format specifier `{}` including the format specifier modifier. 2) Adapt syntax highlighting to add ranges for the detected sequences. 3) Add a test case for the format string syntax highlighting.
| * | Add `pub(crate)` to functions generated in other moduleTimo Freiberg2020-04-211-0/+4
| | |
| * | Make add_function generate functions in other modules via qualified pathTimo Freiberg2020-04-211-1/+6
| | |
* | | minorAleksey Kladov2020-04-231-4/+0
| | |
* | | Fully get rid of SyntaxNodePtr::rangeAleksey Kladov2020-04-231-3/+3
|/ /
* | Merge #4038bors[bot]2020-04-211-1462/+1462
|\ \ | | | | | | | | | | | | | | | | | | | | | 4038: Group generated ast boilerplate apart from the interesting part r=matklad a=Veetaha Boilerplate `AstNode` and `From` impls are moved to the end further from the interesting part in `generated.rs` Co-authored-by: veetaha <[email protected]>
| * | Group generated ast boilerplate apart from the interesting partveetaha2020-04-181-1462/+1462
| |/
* / Fix panic in split_imports assistAleksey Kladov2020-04-202-3/+11
|/ | | | | | | | | | | | | | | The fix is admittedly quit literally just papering over. Long-term, I see two more principled approaches: * we switch to a fully tree-based impl, without parse . to_string step; with this approach, there shouldn't be any panics. The results might be nonsensical, but so was the original input. * we preserve the invariant that re-parsing constructed node is an identity, and make all the `make_xxx` method return an `Option`. closes #4044
* Don't expose SyntaxNodePtr impl detailsAleksey Kladov2020-04-162-7/+3
|
* Align grammar for record patterns and literalsAleksey Kladov2020-04-118-36/+74
| | | | | | The grammar now looks like this [name_ref :] pat
* Remove dead codeAleksey Kladov2020-04-112-2/+5
|
* Make records grammar more orthogonalAleksey Kladov2020-04-114-4/+94
| | | | | | | | | | | | We used name [: expr] grammar before, now it is [name :] expr which makes things simpler
* Merge pull request #3935 from cjhopman/todoAleksey Kladov2020-04-111-0/+3
|\ | | | | Change missing impl assist to use todo!() instead of unimplemented()
| * Change missing impl assist to use todo!() instead of unimplemented()Chris Hopman2020-04-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | todo!() "Indicates unfinished code" (https://doc.rust-lang.org/std/macro.todo.html) Rust documentation provides further clarification: > The difference between unimplemented! and todo! is that while todo! > conveys an intent of implementing the functionality later and the > message is "not yet implemented", unimplemented! makes no such claims. todo!() seems more appropriate for assists that insert missing impls.
* | Forward compatAleksey Kladov2020-04-101-9/+8
|/
* SimplifyAleksey Kladov2020-04-102-19/+2
|
* Rename some tokensAleksey Kladov2020-04-10199-1043/+1042
|
* Better readabilityAleksey Kladov2020-04-102-0/+142
|
* Remove dead codeAleksey Kladov2020-04-104-195/+187
|
* Generate only minimal set of ineresting tokensAleksey Kladov2020-04-105-1306/+23
|
* Scale token generation backAleksey Kladov2020-04-103-306/+69
|
* Convert more tokensAleksey Kladov2020-04-102-217/+13
|
* Other delimitersAleksey Kladov2020-04-101-32/+32
|
* Curley tokensAleksey Kladov2020-04-104-114/+32
|
* Start replacing tokensAleksey Kladov2020-04-101-34/+12
|
* Semicolon tokenAleksey Kladov2020-04-102-13/+35
|
* More readable ast_src for keywordsAleksey Kladov2020-04-101-69/+77
|
* Simpler acessors for keywordsAleksey Kladov2020-04-095-999/+87
|
* use uniform accessorAleksey Kladov2020-04-091-4/+0
|
* use stdxAleksey Kladov2020-04-091-3/+3
|
* Drop needless traitAleksey Kladov2020-04-092-10/+0
|
* Remove code duplicationAleksey Kladov2020-04-095-60/+49
|
* Be consistent about token accesorsAleksey Kladov2020-04-093-98/+13
|
* Add _token suffix to token accessorsAleksey Kladov2020-04-094-205/+201
| | | | | I think this makes is more clear which things are : AstNode and which are : AstToken
* SimplifyAleksey Kladov2020-04-091-26/+13
|
* Put displays at the endAleksey Kladov2020-04-091-690/+690
|
* More compactAleksey Kladov2020-04-092-1428/+238
|
* More compact generated codeAleksey Kladov2020-04-093-2184/+730
|
* Move the rest of the tokens to generated/tokensAleksey Kladov2020-04-092-653/+653
|
* Move generated tokens to a separate fileAleksey Kladov2020-04-093-3055/+3060
|
* Start ast/generated/tokensAleksey Kladov2020-04-092-0/+2
|
* Prepare for spliting generated into tokens and nodesAleksey Kladov2020-04-093-9625/+9628
|
* Remove allocations from LCAAleksey Kladov2020-04-091-3/+13
| | | | | I haven't actually profiled this, but not allocating a hash map (or anything, really) seems like a good idea
* Parse correctly fn f<T>() where T: Fn() -> u8 + Send {}Luca Barbieri2020-04-092-0/+62
| | | | | We used to parse it as T: Fn() -> (u8 + Send), which is different from the rustc behavior of T: (Fn() -> u8) + Send