aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1328bors[bot]2019-05-278-126/+166
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1328: Change TokenSource to iteration based r=matklad a=edwin0cheng This PR change the `TokenSource` trait from random access to be an iteration based trait: ```rust /// `TokenSource` abstracts the source of the tokens parser operates one. /// /// Hopefully this will allow us to treat text and token trees in the same way! pub trait TokenSource { fn current(&self) -> Token; /// Lookahead n token fn lookahead_nth(&self, n: usize) -> Token; /// bump cursor to next token fn bump(&mut self); /// Is the current token a specified keyword? fn is_keyword(&self, kw: &str) -> bool; } /// `TokenCursor` abstracts the cursor of `TokenSource` operates one. #[derive(Debug, Copy, Clone, Eq, PartialEq)] pub struct Token { /// What is the current token? pub kind: SyntaxKind, /// Is the current token joined to the next one (`> >` vs `>>`). pub is_jointed_to_next: bool, } ``` Note that the refactoring based on this new trait will be separated to incoming PRs Co-authored-by: Edwin Cheng <[email protected]>
| * Remove duplicated codeEdwin Cheng2019-05-251-4/+0
| |
| * Simplify token_tree_to_xxxEdwin Cheng2019-05-251-47/+20
| |
| * Change TokenSource to iteration basedEdwin Cheng2019-05-258-100/+171
| |
* | Merge #1330bors[bot]2019-05-261-0/+19
|\ \ | | | | | | | | | | | | | | | | | | | | | 1330: Add Vim and NeoVim setup section r=oblitum a=oblitum Co-authored-by: Francisco Lopes <[email protected]>
| * | Add Vim and NeoVim setup sectionFrancisco Lopes2019-05-251-0/+19
|/ /
* | Merge #1327bors[bot]2019-05-255-153/+138
|\ \ | | | | | | | | | | | | | | | | | | | | | 1327: Colorize Rust code as HTML r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | Colorize Rust code as HTMLAleksey Kladov2019-05-255-153/+138
|/ /
* | Merge #1318bors[bot]2019-05-241-97/+100
|\ \ | | | | | | | | | | | | | | | | | | | | | 1318: cargo update r=matklad a=kjeremy Nothing interesting Co-authored-by: kjeremy <[email protected]>
| * | cargo updatekjeremy2019-05-231-97/+100
| | |
* | | Merge #1321bors[bot]2019-05-2362-618/+648
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1321: Rustc r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | reformatAleksey Kladov2019-05-234-8/+8
| | | |
| * | | :arrow_up: rustcAleksey Kladov2019-05-2358-610/+640
|/ / /
* | | Merge #1317bors[bot]2019-05-231-0/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1317: profile highlighting r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | profile highlightingAleksey Kladov2019-05-231-0/+3
| |/ /
* | | Merge #1316bors[bot]2019-05-239-335/+244
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | 1316: Simplify code model r=matklad a=matklad * remove references from types which are now id-based * remove api/impl separation, as the impl is a tiny fraction of API anyway Co-authored-by: Aleksey Kladov <[email protected]>
| * | rename code_model_api -> code_modelAleksey Kladov2019-05-234-4/+4
| | |
| * | kill code_model_implAleksey Kladov2019-05-235-89/+64
| | |
| * | remove more referencesAleksey Kladov2019-05-231-56/+56
| | |
| * | remove referencesAleksey Kladov2019-05-233-157/+105
| | |
| * | kill krate_implAleksey Kladov2019-05-233-26/+12
| | |
| * | fix signatureAleksey Kladov2019-05-231-4/+4
| | |
* | | Merge #1290bors[bot]2019-05-2313-26/+102
|\| | | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | 1290: Add Union to code_model r=matklad a=matklad @flodiebold I am conflicted about two possible implementation approaches: * we can add a separate `struct Union` to code model * we can add `fn is_union(&self)` to existing `Struct` This PR goes with the former approach, because it seems like Unions are sufficiently different in semantics to warrant a separate types. Which is in contrast to Syntax Tree, where both structs and unions share the same node kind, because their syntax is the same. What would be the right thing to do here? Co-authored-by: Aleksey Kladov <[email protected]>
| * add union to code_modelAleksey Kladov2019-05-2313-26/+102
| |
* | Merge #1312bors[bot]2019-05-235-201/+259
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 1312: Introduce TokenBuffer r=matklad a=edwin0cheng As discussed in Zulip, this PR Introduce `TokenBuffer` , a safe version of `syn` crate `TokenBuffer` which support cursor based traversal of `tt::TokenTree`. This is the basis of incoming refactoring of `TokenSource` iterator based API. This PR do the following things: * Add TokenBuffer in `ra_tt` crate. * Try to use this new API to refactor the `SubtreeSource` to prove it usage. Co-authored-by: Edwin Cheng <[email protected]>
| * Use slice instead of VecEdwin Cheng2019-05-231-4/+4
| |
| * FormattingEdwin Cheng2019-05-231-1/+1
| |
| * Refactor SubtreeSourceEdwin Cheng2019-05-223-201/+88
| |
| * Introduce TokenBufferEdwin Cheng2019-05-222-0/+171
| |
* | Merge #1315bors[bot]2019-05-231-1/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | 1315: Use Xenial image and fix find call r=matklad a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| * | Use Xenial image and fix find callLaurențiu Nicola2019-05-231-1/+2
|/ /
* | Merge #1305bors[bot]2019-05-235-11/+221
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1305: Try to resolve name refs during highlighting r=matklad a=lnicola Preview: ![image](https://user-images.githubusercontent.com/308347/58253075-43464a80-7d70-11e9-84cc-e81990f2d3eb.png) This is probably not the cleanest implementation, but it's not clear to me what parts of `reference_definition` we don't want to run at this point. Also, is the `SourceAnalyzer` cheap enough to construct for each `NameRef`? Not like there's any alternative at this point, though. Co-authored-by: Laurențiu Nicola <[email protected]>
| * | Improve highlighting of name refsLaurențiu Nicola2019-05-235-11/+221
|/ /
* | Merge #1311bors[bot]2019-05-235-97/+144
|\ \ | | | | | | | | | | | | | | | | | | | | | 1311: Move NameRef classification logic out of reference_definition r=matklad a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| * | Move NameRef classification logic out of reference_definitionLaurențiu Nicola2019-05-235-97/+144
| | |
* | | Merge #1313bors[bot]2019-05-234-9/+170
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | 1313: Update `gen_lsp_server` examples r=matklad a=dmoonfire - updated the documentation with an example that has no errors with current compiler - added two example code to test compilation and show in use - one example is the bare bones version in documentation - the other example is the same but with logging statements to show flow Co-authored-by: Dylan Moonfire <[email protected]>
| * | updated gen_lsp_server examplesDylan Moonfire2019-05-234-9/+170
|/ / | | | | | | | | - updated the documentation with an example that has no errors with current compiler - added two example code to test compilation and show in use
* | mention why enableEnhancedTyping is neededAleksey Kladov2019-05-221-1/+1
| |
* | Merge #1308bors[bot]2019-05-223-1/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | 1308: add profile calls to parsing/expansion routines r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | add profile calls to parsing/expansion routinesAleksey Kladov2019-05-223-1/+7
|/ /
* | Merge #1281bors[bot]2019-05-224-119/+294
|\ \ | |/ |/| | | | | | | | | | | 1281: Move arm cond to match guard r=matklad a=unrealhoang I did split the rename to another commit, yet Github UI still show entirely new file change. Please review using commits. Co-authored-by: Unreal Hoang <[email protected]>
| * add feature docUnreal Hoang2019-05-211-2/+31
| |
| * add assist to move arm condition to match guardUnreal Hoang2019-05-213-117/+263
| |
| * renameUnreal Hoang2019-05-162-2/+2
| |
* | Merge #1307bors[bot]2019-05-213-8/+29
|\ \ | | | | | | | | | | | | | | | | | | | | | 1307: better profilig r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | better profiligAleksey Kladov2019-05-213-8/+29
|/ /
* | Merge #1306bors[bot]2019-05-214-28/+33
|\ \ | | | | | | | | | | | | | | | | | | | | | 1306: Chalk fuel r=matklad a=flodiebold This switches Chalk to my fuel branch, and limits the fuel for trait solving. This should improve worst-case performance; for example, we can now run `ra_cli analysis-stats` against rustc again. This also fixes a bug found doing that. Co-authored-by: Florian Diebold <[email protected]>
| * | Fix crash with int vars in canonicalizationFlorian Diebold2019-05-211-1/+6
| | |
| * | Use fuel branch for ChalkFlorian Diebold2019-05-213-27/+27
|/ / | | | | | | This makes sure we don't take too long in trait solving.
* | re-enable chalkAleksey Kladov2019-05-211-17/+16
| |