aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
Commit message (Collapse)AuthorAgeFilesLines
* Remove Copy trait on LeafAtOffsetAlan Du2018-10-181-1/+1
| | | | | | | Because it's a stateful iterator, it's easier to explicitly clone it when necesary. Fixes clippy:clone_on_copy
* clippy: Use if lets and remove redundant returnsAlan Du2018-10-186-16/+12
|
* Update rowanAleksey Kladov2018-10-176-39/+16
|
* rename gen-kinds to gen-syntaxAleksey Kladov2018-10-165-5/+5
|
* Cargo FormatJeremy A. Kolb2018-10-1631-391/+490
| | | | Run `cargo fmt` and ignore generated files
* start salsa migrationAleksey Kladov2018-10-151-1/+1
|
* regenerateAleksey Kladov2018-10-151-1/+1
|
* Parse crate paths in expressionsAleksey Kladov2018-10-153-1/+45
|
* switch base crates to 2018Aleksey Kladov2018-10-151-0/+1
|
* Run cargo fixAleksey Kladov2018-10-1524-44/+44
|
* Merge #127bors[bot]2018-10-153-3/+44
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 127: Improve folding r=matklad a=aochagavia I was messing around with adding support for multiline comments in folding and ended up changing a bunch of other things. First of all, I am not convinced of folding groups of successive items. For instance, I don't see why it is worthwhile to be able to fold something like the following: ```rust use foo; use bar; ``` Furthermore, this causes problems if you want to fold a multiline import: ```rust use foo::{ quux }; use bar; ``` The problem is that now there are two possible folds at the same position: we could fold the first use or we could fold the import group. IMO, the only place where folding groups makes sense is when folding comments. Therefore I have **removed folding import groups in favor of folding multiline imports**. Regarding folding comments, I made it a bit more robust by requiring that comments can only be folded if they have the same flavor. So if you have a bunch of `//` comments followed by `//!` comments, you will get two separate fold groups instead of a single one. Finally, I rewrote the API in such a way that it should be trivial to add new folds. You only need to: * Create a new FoldKind * Add it to the `fold_kind` function that converts from `SyntaxKind` to `FoldKind` Fixes #113 Co-authored-by: Adolfo Ochagavía <[email protected]>
| * Only fold groups of similar commentsAdolfo Ochagavía2018-10-131-1/+1
| |
| * Cleanup fold code and split logic to fold single elementsAdolfo Ochagavía2018-10-123-2/+43
| |
* | RegenerateJeremy A. Kolb2018-10-121-1/+2
| |
* | Language Server: textDocument/signatureHelpJeremy A. Kolb2018-10-112-2/+5
|/ | | | | | | | | | Implements a pretty barebones function signature help mechanism in the language server. Users can use `Analysis::resolve_callback()` to get basic information about a call site. Fixes #102
* Merge #116bors[bot]2018-10-113-0/+62
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 116: Collapse comments upon join r=matklad a=aochagavia Todo: - [x] Write tests - [x] Resolve fixmes - [x] Implement `comment_start_length` using the parser I left a bunch of questions as fixmes. Can someone take a look at them? Also, I would love to use the parser to calculate the length of the leading characters in a comment (`//`, `///`, `//!`, `/*`), so any hints are greatly appreciated. Co-authored-by: Adolfo Ochagavía <[email protected]> Co-authored-by: Adolfo Ochagavía <[email protected]>
| * Use Comment wrapperAdolfo Ochagavía2018-10-113-0/+62
| |
* | Update crates/ra_syntax/src/ast/generated.rsReinier Maas2018-10-101-32/+64
| | | | | | | | effect of running cargo gen-kinds
* | Update generated.rs.teraReinier Maas2018-10-101-2/+1
|/ | | Removing `-` for #114
* Attach comments smartlyAleksey Kladov2018-10-083-24/+81
|
* replace loop with iteratorsAleksey Kladov2018-10-081-6/+7
|
* Simplify event processingAleksey Kladov2018-10-085-94/+117
|
* Add `cargo gen-kinds` documentationDaniel McNab2018-10-045-1/+20
|
* Merge #93bors[bot]2018-10-043-12/+59
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 93: Support leading pipe in match arms r=matklad a=DJMcNab This adds support for match arms of the form: ```rust <...> | X | Y => <...>, | X => <...>, | 1..2 => <...>, etc ``` # Implementation discussion This just naïvely 'eats' a leading pipe if one is available. The equivalent line in the reference `libsyntax` is in [`parse_arm`](https://github.com/rust-lang/rust/blob/441519536c8bd138e8c651743249acd6814747a1/src/libsyntax/parse/parser.rs#L3552). As noted in the comment linked above, this feature was formally introduced as a result of rust-lang/rfcs#1925. This feature is in active use in the [`rust-analyzer` codebase](https://github.com/matklad/rust-analyzer/blob/c87fcb4ea5874a7307c1d9d1192e923f3ae2c922/crates/ra_syntax/src/syntax_kinds/generated.rs#L231) I have added some tests for this feature, but maybe more would be required EDIT: Always looking for feedback - is this PR description over-engineered? Co-authored-by: Daniel McNab <[email protected]>
| * Support leading pipe in match armsDaniel McNab2018-10-033-12/+59
| |
* | Make siblings an inherent methodAleksey Kladov2018-10-023-17/+14
| |
* | make ancestors and descendants inherentAleksey Kladov2018-10-026-17/+16
| |
* | use aliasesAleksey Kladov2018-10-021-2/+2
| |
* | Move to rowan for syntax tree implAleksey Kladov2018-10-0211-530/+137
|/
* support 2018 pathsAleksey Kladov2018-09-293-3/+21
|
* generate testsuite for impl_typecsmoe2018-09-265-13/+94
|
* parse impl typecsmoe2018-09-253-57/+44
|
* reject impl keyword in impl headercsmoe2018-09-241-2/+10
|
* add test for impl recoverycsmoe2018-09-242-0/+70
|
* Add emacs function for extend shirnk selectionAleksey Kladov2018-09-181-1/+5
|
* rename all thingsAleksey Kladov2018-09-16422-0/+21903