aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge #1336bors[bot]2019-05-284-156/+149
|\ | | | | | | | | | | | | | | 1336: Refactor SubtreeSource r=matklad a=edwin0cheng This PR simplify `SubtreeSource` by removing `SubtreeWalk` and `Querier` and only walk through the top level `TokenTree` when collecting token from source, by comparing two cursors directly. Co-authored-by: Edwin Cheng <[email protected]>
| * Use cfg(test) instead of allow(unused)Edwin Cheng2019-05-281-1/+1
| |
| * Minor use moduleEdwin Cheng2019-05-271-3/+2
| |
| * Simpliy how collecting token from srcEdwin Cheng2019-05-273-72/+39
| |
| * Add more helper func in CursorEdwin Cheng2019-05-271-0/+15
| |
| * Remove Queier and SubtreeWalkEdwin Cheng2019-05-272-92/+104
| |
* | Merge #1334bors[bot]2019-05-274-1/+87
|\ \ | |/ |/| | | | | | | | | | | 1334: check for cancellation during macro expansion r=matklad a=matklad closes #1331 Co-authored-by: Aleksey Kladov <[email protected]>
| * check cancellation when expanding macrosAleksey Kladov2019-05-272-3/+3
| |
| * specifically profile cancellationAleksey Kladov2019-05-271-0/+4
| |
| * enable profiling in testsAleksey Kladov2019-05-272-1/+83
| |
* | Make rainbows optionalPascal Hertleif2019-05-271-1/+2
| |
* | rename stray id fieldPascal Hertleif2019-05-272-2/+2
| |
* | make it build againPascal Hertleif2019-05-273-14/+28
| |
* | Disable broken struct field rainbowingPascal Hertleif2019-05-273-23/+7
| |
* | More clever highlighting, incl draft for structsPascal Hertleif2019-05-279-414/+158
| |
* | Hash based on binding name and shadow counterPascal Hertleif2019-05-274-21/+81
| |
* | Semantic highlighting spikePascal Hertleif2019-05-276-36/+355
|/ | | | | | | | | | Very simple approach: For each identifier, set the hash of the range where it's defined as its 'id' and use it in the VSCode extension to generate unique colors. Thus, the generated colors are per-file. They are also quite fragile, and I'm not entirely sure why. Looks like we need to make sure the same ranges aren't overwritten by a later request?
* add profile calls to real-time requestsAleksey Kladov2019-05-271-0/+5
|
* Merge #1277bors[bot]2019-05-277-96/+272
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1277: Improve macro item resolution r=matklad a=edwin0cheng ~This PR add a new namespace `Macros` in `per_ns.rs` to allow following use case:~ This PR improve macro item resolution to allow following use case: ```rust //- /main.rs use foo::bar; bar!(); //- /lib.rs (crate foo) #[macro_export] macro_rules! bar{ () => { struct Foo { field: u32 } } ``` Co-authored-by: Edwin Cheng <[email protected]>
| * FormattingEdwin Cheng2019-05-271-1/+0
| |
| * Add Test for new item resolutionEdwin Cheng2019-05-262-2/+55
| |
| * Use ItemOrMacro in item resolutionEdwin Cheng2019-05-264-94/+214
| |
| * Add Either depEdwin Cheng2019-05-261-0/+1
| |
| * Put back unexpaned_macros after resolveEdwin Cheng2019-05-261-0/+3
| |
* | 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
| |
* | Colorize Rust code as HTMLAleksey Kladov2019-05-255-153/+138
| |
* | 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
| |
* | Improve highlighting of name refsLaurențiu Nicola2019-05-232-9/+168
| |
* | Merge #1311bors[bot]2019-05-234-97/+143
|\ \ | | | | | | | | | | | | | | | | | | | | | 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-234-97/+143
| | |