aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #127bors[bot]2018-10-155-77/+185
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
| * Improve testsAdolfo Ochagavía2018-10-132-30/+63
| |
| * Only fold groups of similar commentsAdolfo Ochagavía2018-10-132-28/+31
| |
| * Cleanup fold code and split logic to fold single elementsAdolfo Ochagavía2018-10-124-40/+112
| |
| * Fold multiline commentsAdolfo Ochagavía2018-10-121-19/+19
| |
* | A FnDescriptor shouldn't exist without a nameJeremy A. Kolb2018-10-123-49/+47
| |
* | RegenerateJeremy A. Kolb2018-10-121-1/+2
| |
* | Language Server: textDocument/signatureHelpJeremy A. Kolb2018-10-1110-12/+316
|/ | | | | | | | | | 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 #122bors[bot]2018-10-1119-49/+56
|\ | | | | | | | | | | | | | | | | | | | | | | 122: Use rustc-hash crate r=matklad a=mominul Replace std's HashMap, HashSet with FxHashMap and FxHashSet. Closes #121 Thanks! Co-authored-by: Muhammad Mominul Huque <[email protected]>
| * Replace HashMap, HashSet with FxHashMap and FxHashSetMuhammad Mominul Huque2018-10-1119-49/+56
| |
* | Merge #116bors[bot]2018-10-114-58/+199
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | 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]>
| * Remove smart multiline comment joinAdolfo Ochagavía2018-10-111-22/+23
| |
| * Add testsAdolfo Ochagavía2018-10-111-0/+56
| |
| * Remove nestingAdolfo Ochagavía2018-10-111-75/+68
| |
| * Use Comment wrapperAdolfo Ochagavía2018-10-114-36/+78
| |
| * Collapse comments upon joinAdolfo Ochagavía2018-10-101-15/+64
| |
* | Merge #118bors[bot]2018-10-111-15/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 118: Remove error publishing through publishDecorations r=matklad a=aochagavia The errors are already reported by `publishDiagnostics` Closes #109 Co-authored-by: Adolfo Ochagavía <[email protected]>
| * | Report errors only onceAdolfo Ochagavía2018-10-101-14/+3
| | |
| * | Remove error publishing through publishDecorationsAdolfo Ochagavía2018-10-101-1/+0
| |/
* | 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
* Merge #106bors[bot]2018-10-097-4/+169
|\ | | | | | | | | | | | | | | 106: Add on-enter handler r=matklad a=matklad Now, typing doc comments is much more pleasant Co-authored-by: Aleksey Kladov <[email protected]>
| * Add on-enter handlerAleksey Kladov2018-10-097-4/+169
| | | | | | | | Now, typing doc comments is much more pleasant
* | Switch to absolute offsets for extend comment wordAleksey Kladov2018-10-091-4/+13
|/
* Prepare gen_lsp_server for publishingAleksey Kladov2018-10-094-17/+88
|
* Attach comments smartlyAleksey Kladov2018-10-084-24/+97
|
* replace loop with iteratorsAleksey Kladov2018-10-081-6/+7
|
* Simplify event processingAleksey Kladov2018-10-086-98/+122
|
* tfn snippetAleksey Kladov2018-10-081-0/+32
|
* Merge #98bors[bot]2018-10-074-7/+97
|\ | | | | | | | | | | | | | | 98: WIP: Add resolve_local_name to resolve names in a function scope r=kjeremy a=kjeremy First step to resolving #80 Co-authored-by: Jeremy A. Kolb <[email protected]>
| * Remove functional noopJeremy A. Kolb2018-10-061-8/+0
| |
| * Resolve local names firstJeremy A. Kolb2018-10-063-15/+14
| |
| * WIP: This doesn't currently work but I also don't think it's the right ↵Jeremy A. Kolb2018-10-053-3/+25
| | | | | | | | abstraction
| * Add resolve_local_name to resolve names in a function scopeJeremy A. Kolb2018-10-051-2/+79
| |
* | Add `cargo gen-kinds` documentationDaniel McNab2018-10-045-1/+20
|/
* Merge #94bors[bot]2018-10-041-4/+32
|\ | | | | | | | | | | | | | | 94: Extend comments by single word first r=matklad a=kjeremy Fixes #88 Co-authored-by: Jeremy A. Kolb <[email protected]>
| * Pull casts out of TextUnitJeremy A. Kolb2018-10-041-4/+4
| |
| * Simplify extend_single_word_in_commentJeremy A. Kolb2018-10-041-15/+11
| |
| * Extend comments by single word firstJeremy A. Kolb2018-10-031-4/+36
| | | | | | | | Fixes #88
* | 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-026-34/+30
| |
* | make ancestors and descendants inherentAleksey Kladov2018-10-0214-46/+40
| |
* | use aliasesAleksey Kladov2018-10-021-2/+2
| |
* | Move to rowan for syntax tree implAleksey Kladov2018-10-0211-530/+137
|/
* fix code actionsAleksey Kladov2018-09-291-1/+1
|
* support 2018 pathsAleksey Kladov2018-09-293-3/+21
|
* Merge #81bors[bot]2018-09-265-2/+148
|\ | | | | | | | | | | | | | | 81: [WIP] Reject impl keyword inside impl header r=matklad a=csmoe Closes #77 Co-authored-by: csmoe <[email protected]>
| * generate testsuite for impl_typecsmoe2018-09-265-13/+94
| |
| * parse impl typecsmoe2018-09-253-57/+44
| |