aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
Commit message (Collapse)AuthorAgeFilesLines
* Generalize Owned nodesAleksey Kladov2018-11-062-1806/+1237
|
* grammar: fix where clause parsingAleksey Kladov2018-11-063-1/+35
| | | | closes #205
* upstream basic tree algorithms to rowanAleksey Kladov2018-11-063-107/+10
|
* Merge #188bors[bot]2018-11-0510-66/+183
|\ | | | | | | | | | | | | | | | | 188: Introduce `SyntaxErrorKind` and `TextRange` to `SyntaxError` r=matklad a=aochagavia Co-authored-by: Adolfo Ochagavía <[email protected]> Co-authored-by: Adolfo Ochagavía <[email protected]>
| * cargo formatAdolfo Ochagavía2018-11-052-5/+9
| |
| * Introduce Location and make SyntaxError fields privateAdolfo Ochagavía2018-11-059-50/+72
| |
| * Introduce SyntaxErrorKind and TextRange in SyntaxErrorAdolfo Ochagavía2018-11-049-62/+153
| |
* | bring back testutilsAleksey Kladov2018-11-051-1/+1
| |
* | add descriptionAleksey Kladov2018-11-051-1/+3
| |
* | Switch ra_syntax to 2015 editionAleksey Kladov2018-11-052-1/+4
| |
* | reduce code duplicationAleksey Kladov2018-11-052-21/+19
| |
* | grammar: for predicates in whereAleksey Kladov2018-11-054-35/+129
|/ | | | closes #191
* Add character literal parsing and validationAdolfo Ochagavía2018-11-046-2/+397
|
* Don't order import alphabeticalAleksey Kladov2018-11-011-1/+1
| | | | | alphabetical ordering is no more consistent, and much less useful then the ordering which arises naturally when you add import.
* Use From to get an owned ASTAleksey Kladov2018-11-012-400/+700
|
* Remove DOC_COMMENTJeremy A. Kolb2018-10-314-5/+2
| | | | Closes #166
* Reformat allAleksey Kladov2018-10-314-13/+16
|
* `ast::DocCommentsOwner` which represents a documentation comment ownerJeremy A. Kolb2018-10-313-0/+20
|
* Move FnDescriptors to analyzerAleksey Kladov2018-10-312-100/+100
|
* Introduce owned ast nodesAleksey Kladov2018-10-312-2/+1303
| | | | ast::FooNode is an owned 'static counterpart to ast::Foo<'a>
* switch to TextRange::subrangeAleksey Kladov2018-10-302-6/+2
|
* introduce syntax-ptrAleksey Kladov2018-10-301-0/+1
|
* Complete crate:: pathsAleksey Kladov2018-10-243-1/+36
|
* Fix function callsAlan Du2018-10-183-3/+3
|
* clippy: type_complexityAlan Du2018-10-181-4/+5
|
* 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
| |