aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* More clever highlighting, incl draft for structsPascal Hertleif2019-05-2710-414/+159
|
* Hash based on binding name and shadow counterPascal Hertleif2019-05-274-21/+81
|
* Semantic highlighting spikePascal Hertleif2019-05-279-39/+409
| | | | | | | | | | 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?
* Merge #1333bors[bot]2019-05-271-0/+5
|\ | | | | | | | | | | | | | | 1333: add profile calls to real-time requests r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * add profile calls to real-time requestsAleksey Kladov2019-05-271-0/+5
|/
* Merge #1277bors[bot]2019-05-278-96/+273
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-262-0/+2
| |
| * 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
| | |
* | | 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]>