aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #2566bors[bot]2019-12-151-0/+22
|\ | | | | | | | | | | | | | | 2566: Add a rudimentary json regex to get at information like `endLine` r=matklad a=oli-obk Co-authored-by: Oliver Scherer <[email protected]>
| * Properly format jsonOliver Scherer2019-12-151-9/+11
| |
| * Add a rudimentary json regex to get at information like `endLine`Oliver Scherer2019-12-151-0/+20
|/
* Merge #2564bors[bot]2019-12-151-36/+64
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2564: Introduce named constants for highlighting tag names. r=matklad a=omerbenamram Refers to #2563 . This is just a refactor of all the tag strings to named constants as suggested by @matklad. An enum could _probably_ prevent some future inconsistencies (since strings are still accepted), but I think the constants here are just fine - since the frontend only cares about strings anyways. The frontend doesn't know about about those constants, so we'll still need to be mindful for them there. Note: I didn't touch the `STYLE` const (big css blob), we could probably make it a `format!` string using something like `once_cell::Lazy`, let me know if this is something that needs fixing (since it doesn't seem like a useful API outside of tests). Also - I left those consts private, I assume if they were some kind of API we would have made it into an enum? Co-authored-by: Omer Ben-Amram <[email protected]>
| * use a module instead of prefixed consts.Omer Ben-Amram2019-12-151-66/+64
| |
| * introduce named constants for highlighting tag names.Omer Ben-Amram2019-12-151-37/+67
|/
* Merge #2559bors[bot]2019-12-155-18/+98
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2559: Add some granularity to syntax highlighting. r=matklad a=omerbenamram Hi, I wanted to start using `rust-analyzer` a bit more frequently - one of the main blockers for me so far was the highlighting. I just discovered it's possible to override the default colors with `ralsp.<something>` setting without waiting for #2061! However, the current implementation was lumping a bunch of different tokens into `type` and `literal`. The golden standard IMO is what Clion is currently doing (and is my current daily driver for rust). Clion allows users to control the coloring for specific literal kinds, and the default is to distinguish between them (numerics get a different color from strings, and special colors for bytestrings). I've also splitted the builtin types, which are also allowed to be highlighted speratly. My goal is to match the default experience I'm getting with clion. The only blockers now I think is that `rust-analyzer` doesn't corrently infer types in some situations, so the highlighting information is incorrect in those cases. This is what it looks like so far (with colors overriden to match clion's theme): ![image](https://user-images.githubusercontent.com/2467993/70848219-ccd97900-1e76-11ea-89e1-2e467cfcc9fb.png) If there are any other changes you feel is necessary let me know. I did leave the default colors to match the current behavior, since I'm not familiar with the colors for this theme, I added some random (different) colors in the test to check that it indeed was working. Co-authored-by: Omer Ben-Amram <[email protected]>
| * fixed rainbow-highlighting testOmer Ben-Amram2019-12-151-0/+2
| |
| * Merge branch 'refs/heads/master' into feature/granular-scopesOmer Ben-Amram2019-12-1429-331/+494
| |\
| * | removed `type.alias`Omer Ben-Amram2019-12-144-14/+28
| | |
| * | added decorationsOmer Ben-Amram2019-12-143-3/+63
| | |
| * | scopes resolution is more granularOmer Ben-Amram2019-12-131-8/+12
| | |
* | | Merge #2561bors[bot]2019-12-1419-355/+478
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2561: Split generic and non-generic paths r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Use different types for path with and without genericsAleksey Kladov2019-12-1418-354/+471
| | | |
| * | | Use all-features by defaultAleksey Kladov2019-12-141-1/+7
| | |/ | |/|
* | | Merge #2552bors[bot]2019-12-143-6/+106
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2552: fix goto definition when inbetween tokens r=matklad a=succcubbus fixes both goto_definition and goto_type_definition. before, when running goto between some non-trivia token and an identifier, goto would be attempted for the non-trivia token. but this does not make sense for e.g. L_PAREN or COLONCOLON only for IDENTs. this resulted in goto actions not working when running them on the first character of some identifier e.g. for `module::<|>method()` or `method(<|>parameter)`. now only IDENTs will be searched for in goto actions, though i'm not sure if this is correct or if goto should also work for some other token types. Co-authored-by: succcubbus <[email protected]>
| * | for goto and hover pick the token based on a prioritysucccubbus2019-12-133-17/+46
| | |
| * | add tests for goto on tuple fieldssucccubbus2019-12-132-1/+33
| | |
| * | try both surrounding tokens for hoversucccubbus2019-12-131-4/+12
| | |
| * | add failing testsucccubbus2019-12-131-0/+7
| | |
| * | use find() instead of filter().next()succcubbus2019-12-131-1/+1
| | |
| * | fix goto definition when inbetween tokenssucccubbus2019-12-132-4/+28
| |/ | | | | | | | | | | | | | | fixes both goto_definition and goto_type_definition. before, when running goto between some non-trivia token and an identifier, goto would be attempted for the non-trivia token. but this does not make sense for e.g. L_PAREN or COLONCOLON only for IDENTs. now only IDENTs will be searched for in goto actions.
* | Merge #2554bors[bot]2019-12-1418-235/+223
|\ \ | | | | | | | | | | | | | | | | | | | | | 2554: Add macros for known names and paths r=matklad a=flodiebold Co-authored-by: Florian Diebold <[email protected]>
| * | Use path macroFlorian Diebold2019-12-134-80/+49
| | |
| * | Rename N! to name!Florian Diebold2019-12-1316-63/+63
| | |
| * | Add macros for known names and pathsFlorian Diebold2019-12-1316-173/+192
| | |
* | | Merge #2548bors[bot]2019-12-148-21/+125
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2548: Support setting cargo features and resolve `default` features by default r=matklad a=oxalica Fixes #2524 Co-authored-by: oxalica <[email protected]>
| * | | Enable `allFeatures` by default and fix lintsoxalica2019-12-132-10/+17
| | | |
| * | | Support setting cargo featuresoxalica2019-12-138-21/+118
| | | |
* | | | Merge #2557bors[bot]2019-12-131-19/+16
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2557: Remove some unwraps in add_new r=flodiebold a=kjeremy I think this file could probably be simplified a little more but this at least gets me around the panic. Fixes #2556 Co-authored-by: kjeremy <[email protected]>
| * | | Remove some unwraps in add_newkjeremy2019-12-131-19/+16
|/ / /
* | | Merge #2555bors[bot]2019-12-131-0/+5
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2555: LSP 3.15 supports the deprecated tag on completions r=matklad a=kjeremy So let's set it. Co-authored-by: kjeremy <[email protected]>
| * | | LSP 3.15 supports the deprecated tag on completionskjeremy2019-12-131-0/+5
|/ / /
* | | Merge #2550bors[bot]2019-12-135-70/+139
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 2550: Infer - and ! using std::ops::{Neg, Not} r=flodiebold a=kiljacken Found some low hanging fruit while taking a cursory look at index inferring. Co-authored-by: Emil Lauridsen <[email protected]>
| * | Correctly infer - and ! using std::ops::{Neg,Not}Emil Lauridsen2019-12-135-23/+114
| | |
| * | Add helper for resolving associated type of trait in inferEmil Lauridsen2019-12-132-47/+25
| | |
* | | Merge #2551bors[bot]2019-12-138-44/+42
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2551: Refactor tt::Subtree delimiter r=matklad a=edwin0cheng Refactor to : ``` #[derive(Debug, Clone, PartialEq, Eq, Hash, Default)] pub struct Subtree { pub delimiter: Option<Delimiter>, pub token_trees: Vec<TokenTree>, } #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] pub enum Delimiter { Parenthesis, Brace, Bracket, } ``` Co-authored-by: Edwin Cheng <[email protected]>
| * | Refactor tt::DelimiterEdwin Cheng2019-12-138-44/+42
|/ /
* | Merge #2544bors[bot]2019-12-131-17/+36
|\ \ | |/ |/| | | | | | | | | | | 2544: Map first and last tokens in original_range r=matklad a=edwin0cheng This PR try to fix the first part of the `original_range` : Try to map the first token and last token of a `SyntaxNode` , If success, return the union range of mapped tokens. Co-authored-by: Edwin Cheng <[email protected]>
| * Map first and last node in original_rangeEdwin Cheng2019-12-121-17/+36
| |
* | Merge #2543bors[bot]2019-12-122-106/+119
|\ \ | | | | | | | | | | | | | | | | | | | | | 2543: Move use tree lowering to a separate module r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | Correct obsolete commentAleksey Kladov2019-12-121-2/+1
| | |
| * | Move use tree lowering to a separate moduleAleksey Kladov2019-12-122-104/+118
|/ /
* | Merge #2540bors[bot]2019-12-122-78/+35
|\ \ | | | | | | | | | | | | | | | | | | | | | 2540: Dedupe from_source impls r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | Dedupe from_source implsAleksey Kladov2019-12-122-78/+35
| | |
* | | Merge #2539bors[bot]2019-12-1218-233/+276
|\| | | | | | | | | | | | | | | | | | | | | | | 2539: Remove old location infra r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | Remove old location infraAleksey Kladov2019-12-122-63/+6
| | |
| * | Move enum&union to new locAleksey Kladov2019-12-1214-79/+123
| | |
| * | Move structs to new locAleksey Kladov2019-12-1214-30/+66
| | |
| * | Simplify from_sourceAleksey Kladov2019-12-121-49/+34
| | |