aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* assign ids to tokensAleksey Kladov2019-02-114-3/+15
|
* Merge #781bors[bot]2019-02-1114-64/+146
|\ | | | | | | | | | | | | | | 781: Refactor to allow for multiple assists r=matklad a=eulerdisk This is necessary to allow assist "providers" (which currently are simple free function) to produce multiple assists. I'm not sure this is the best possible refactoring tough. Co-authored-by: Andrea Pretto <[email protected]>
| * ra_assists: assist "providers" can produce multiple assistsAndrea Pretto2019-02-1114-64/+146
| |
* | Merge #790bors[bot]2019-02-118-16/+25
|\ \ | | | | | | | | | | | | | | | | | | | | | 790: make macro-rules eq r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | make macro a NameOwnerAleksey Kladov2019-02-116-5/+14
| | |
| * | make macro-rules eqAleksey Kladov2019-02-112-11/+11
| |/
* | Merge #789bors[bot]2019-02-114-4/+4
|\ \ | |/ |/| | | | | | | | | | | 789: remove useless hash r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * typoAleksey Kladov2019-02-112-2/+2
| |
| * remove useless hashAleksey Kladov2019-02-112-2/+2
|/
* Merge #788bors[bot]2019-02-114-34/+20
|\ | | | | | | | | | | | | | | 788: remove query_definitions r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * remove query_definitionsAleksey Kladov2019-02-114-34/+20
|/
* Merge #787bors[bot]2019-02-112-3/+3
|\ | | | | | | | | | | | | | | 787: rename combine -> or r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * rename combine -> orAleksey Kladov2019-02-112-3/+3
|/ | | | | | This way we match API of Option https://doc.rust-lang.org/std/option/enum.Option.html#method.or
* Merge #785bors[bot]2019-02-115-18/+81
|\ | | | | | | | | | | | | | | 785: Fix completion of paths r=flodiebold a=matklad r? @flodiebold Co-authored-by: Aleksey Kladov <[email protected]>
| * use extern prelude in ResolverAleksey Kladov2019-02-115-18/+81
| | | | | | | | | | | | | | This fixes two bugs: - completion for paths works again - we handle extern prelude shadowing more correctly
* | Merge #786bors[bot]2019-02-111-22/+23
|\ \ | |/ |/| | | | | | | | | | | 786: :arrow_up: insta r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * :arrow_up: instaAleksey Kladov2019-02-111-22/+23
|/
* Merge #784bors[bot]2019-02-113-116/+146
|\ | | | | | | | | | | | | | | 784: WIP: improve multi-crate fixtures r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * add graph fixtureAleksey Kladov2019-02-113-71/+81
| |
| * Handle SourceRoots automatically in fixturesAleksey Kladov2019-02-112-55/+75
| |
* | Merge #783bors[bot]2019-02-1121-21/+21
|\ \ | | | | | | | | | | | | | | | | | | | | | 783: Fix typo in Cargo.toml authors r=matklad a=vipentti Fixes typo introduced in #782 Co-authored-by: Ville Penttinen <[email protected]>
| * | Fix typo in Cargo.toml authorsVille Penttinen2019-02-1121-21/+21
|/ / | | | | | | Fixes typo introduced in #782
* | Merge #782bors[bot]2019-02-1121-21/+21
|\ \ | |/ |/| | | | | | | | | | | 782: Update authors field in Cargo.tomls to "rust-analyzer developers" r=matklad a=vipentti This closes #777 Co-authored-by: Ville Penttinen <[email protected]>
| * Update authors field in Cargo.tomls to "rust-analyzer developers"Ville Penttinen2019-02-1121-21/+21
|/ | | | This closes #777
* Merge #780bors[bot]2019-02-101-1/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | 780: Mention node.js requirement in readme r=DJMcNab a=Matthias247 I tried building rust-analyzer according to the instructions, but it failed with a very non-descriptive error: > will run: npm ci > Error: Os { code: 2, kind: NotFound, message: "No such file or directory" } It took me a while to figure out I had an outdated node version installed, which didn't support `npm ci`. I think mentioning the requirement explicitly might prevent others from running into the same issue. Co-authored-by: Matthias Einwag <[email protected]>
| * Mention node.js requirement in readmeMatthias Einwag2019-02-101-1/+9
|/
* Merge #778bors[bot]2019-02-104-13/+240
|\ | | | | | | | | | | | | | | 778: Glob imports r=matklad a=flodiebold This implements glob imports, completing #231 :) Co-authored-by: Florian Diebold <[email protected]>
| * Implement glob imports within the same crateFlorian Diebold2019-02-101-16/+77
| | | | | | | | Fixes #231.
| * Import glob imports from other cratesFlorian Diebold2019-02-103-2/+17
| | | | | | | | This is the easy part since we don't have to consider the fixpoint algorithm.
| * Implement glob imports from enumsFlorian Diebold2019-02-102-6/+37
| |
| * Add some testsFlorian Diebold2019-02-102-0/+120
| |
* | Merge #762bors[bot]2019-02-102-0/+732
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | 762: "Dumb" auto import assist r=matklad a=eulerdisk This adds a new assist to "add xxx::yyy to the current file" when the cursor is on a PATH. It manages correctly nested imports,`self` keyword and creates new nested imports if necessary. [See the tests] It doesn't use name resolution so in that sense is 'dumb', but I have plans to do that. That in the future will be useful to auto import trait names in autocompletion for example. It can easily be extended to provide multiple actions to select in which scope to import. That's another thing I plan to do. @matklad I copied some indentation code from `ide_light`, I don't know at the moment if/how you want to refactor that code. This assist was meant to be in `ide_light`. Co-authored-by: Andrea Pretto <[email protected]>
| * auto_import: use ra_fmtAndrea Pretto2019-02-091-109/+29
| |
| * auto_import: struct variants for ImportActionAndrea Pretto2019-02-091-44/+107
| |
| * auto_import: remove PathSegmentsMatchAndrea Pretto2019-02-093-67/+37
| |
| * auto_import: Removed Empty in favor of Partial(0)Andrea Pretto2019-02-091-16/+10
| | | | | | | | auto_import: Removed unecessary lifetimes
| * auto_import assistAndrea Pretto2019-02-094-0/+785
| |
* | Merge #774bors[bot]2019-02-1012-6/+429
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 774: Batch crate & command r=matklad a=flodiebold This adds a new crate, `ra_batch`, which is intended for scenarios where you're loading a workspace once and then running some analyses using the HIR API. Also, it adds a command to `ra_cli` which uses that to type-check all crates in a workspace and print some statistics: E.g. in rust-analyzer: ``` > $ time target/release/ra_cli analysis-stats Database loaded, 21 roots Crates in this dir: 28 Total modules found: 231 Total declarations: 3694 Total functions: 2408 Total expressions: 47017 Expressions of unknown type: 19826 (42%) Expressions of partially unknown type: 4482 (9%) target/release/ra_cli analysis-stats 3,23s user 0,60s system 100% cpu 3,821 total ``` Or in rust-lang/rust: ``` > $ time ../opensource/rust-analyzer/target/release/ra_cli analysis-stats Database loaded, 77 roots Crates in this dir: 130 Total modules found: 1820 Total declarations: 35038 Total functions: 25914 Total expressions: 753678 Expressions of unknown type: 337975 (44%) Expressions of partially unknown type: 92314 (12%) ../opensource/rust-analyzer/target/release/ra_cli analysis-stats 13,45s user 2,08s system 100% cpu 15,477 total ``` ~This still needs a test. Type-checking all of rust-analyzer sadly takes almost a minute when compiled in debug mode :sweat_smile: So I'll need to add something simpler (maybe just looking at a few modules).~ Co-authored-by: Florian Diebold <[email protected]>
| * | Spell cases explicitly in Ty::walk{_mut}Florian Diebold2019-02-101-2/+18
| | |
| * | Clean up a bitFlorian Diebold2019-02-102-9/+1
| | |
| * | Add a smoke test for ra_batchFlorian Diebold2019-02-101-0/+24
| | |
| * | Add an ra_cli command that analyses all crates in the current workspaceFlorian Diebold2019-02-109-4/+227
| | | | | | | | | | | | ... and prints various stats about how many expressions have a type etc.
| * | Implement BatchDatabase constructionFlorian Diebold2019-02-105-22/+116
| | |
| * | Add new crateFlorian Diebold2019-02-103-0/+74
| | |
* | | Merge #776bors[bot]2019-02-103-19/+24
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 776: Add support for a seperate output channel for trace messages r=DJMcNab a=DJMcNab See https://github.com/Microsoft/vscode-languageserver-node/pull/444 I am just working on testing this now, but I think it should work. Co-authored-by: DJMcNab <[email protected]>
| * | Update dependenciesDJMcNab2019-02-102-8/+8
| | |
| * | Fix trace and prettierDJMcNab2019-02-101-2/+4
| | |
| * | Add support for a seperate output channel for trace messagesDJMcNab2019-02-103-10/+13
|/ /
* | Merge #770bors[bot]2019-02-101-1/+80
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 770: Fix introduce var duplicating newlines r=matklad a=vipentti This fixes #713. If the block before the statement we want to use introduce var on, had empty lines these empty lines would also be added between the let-statement and the current line where the new variable is used. This fixes that by trimming excess newlines from the start of the indent chunk and simply adding a single newline (when the chunk had newlines) between the let-statement and the current statement. If there were no newlines this matches the previous behaviour. Co-authored-by: Ville Penttinen <[email protected]>
| * | Fix introduce var duplicating newlinesVille Penttinen2019-02-091-1/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes #713. If the block before the statement we want to use introduce var on, had empty lines these empty lines would also be added between the let-statement and the current line where the new variable is used. This fixes that by trimming excess newlines from the start of the indent chunk and simply adding a single newline (when the chunk had newlines) between the let-statement and the current statement. If there were no newlines this matches the previous behaviour.