aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Parse cargo output a line at a time.Emil Lauridsen2020-01-292-5/+22
| | | | | | | | | | | | | | | | | | We previously used serde's stream deserializer to read json blobs from the cargo output. It has an issue though: If the deserializer encounters invalid input, it gets stuck reporting the same error again and again because it is unable to foward over the input until it reaches a new valid object. Reading a line at a time and manually deserializing fixes this issue, because cargo makes sure to only outpu one json blob per line, so should we encounter invalid input, we can just skip a line and continue. The main reason this would happen is stray printf-debugging in procedural macros, so we still report that an error occured, but we handle it gracefully now. Fixes #2935
* Merge #2931bors[bot]2020-01-292-24/+56
|\ | | | | | | | | | | | | | | | | 2931: Added documentation to test_utils r=matklad a=Veetaha Added some doc comments to test_utils functions while studying this crate. They should be all stable enough to document them. Also some minor code relocation in `parse_fixture()` closer to its usage according to the advice of @matklad. Co-authored-by: Veetaha <[email protected]>
| * test_utils: move flush!() to its usage as per conversation with @matkladVeetaha2020-01-291-13/+13
| |
| * test_utils: updated documentation and some typosVeetaha2020-01-292-11/+43
| |
* | Complain loudly if the main loop is blockedAleksey Kladov2020-01-291-1/+21
| |
* | More uniform namingAleksey Kladov2020-01-291-7/+7
| |
* | Don't compute diagnostics on the main threadAleksey Kladov2020-01-291-28/+28
|/ | | | closes #2909
* Merge #2917bors[bot]2020-01-283-14/+88
|\ | | | | | | | | | | | | | | 2917: Prefer imports starting with std r=matklad a=SomeoneToIgnore Closes https://github.com/rust-analyzer/rust-analyzer/issues/2915 Co-authored-by: Kirill Bulatov <[email protected]>
| * Add the testsKirill Bulatov2020-01-282-0/+42
| |
| * Apply the proposed refactoringKirill Bulatov2020-01-281-38/+43
| |
| * Prefer imports starting with stdKirill Bulatov2020-01-272-6/+33
| |
* | Publicize debug printing of CrateDefMapAleksey Kladov2020-01-282-41/+42
| |
* | Standard formatting for array typesAleksey Kladov2020-01-285-89/+89
| |
* | Merge #2924bors[bot]2020-01-281-2/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2924: Modify ordering of drops in check watcher to only ever have one cargo r=matklad a=kiljacken Due to the way drops are ordered when assigning to a mutable variable we were launching a new cargo sub-process before letting the old one quite. By explicitly replacing the original watcher with a dummy first, we ensure it is dropped and the process is completed, before we start the new process. Co-authored-by: Emil Lauridsen <[email protected]>
| * | Modify ordering of drops in check watcher to only ever have one cargoEmil Lauridsen2020-01-281-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Due to the way drops are ordered when assigning to a mutable variable we were launching a new cargo sub-process before letting the old one quite. By explicitly replacing the original watcher with a dummy first, we ensure it is dropped and the process is completed, before we start the new process.
* | | Don't do check progress update for fresh cratesEmil Lauridsen2020-01-281-0/+8
|/ /
* / Buffer reads from cargo check's stdoutLaurențiu Nicola2020-01-271-1/+4
|/
* Merge #2810bors[bot]2020-01-271-27/+111
|\ | | | | | | | | | | | | | | 2810: Improves reference search by StructLiteral r=mikhail-m1 a=mikhail-m1 Hey, I've made some changes to improve search for struct literals, now it works for `struct Foo<|> {`, `struct Foo <|>{`, `struct Foo<|>(`. Unfortunately tuple creation is represented as a call expression, so for tuples it works only is search is started in a tuple declaration. It leads to incorrect classification of function calls during search phase, but from user perspective it's not visible and works as expected. May be it worth to add a comment or rename it to remove this misleading classification. Issue #2549. Co-authored-by: Mikhail Modin <[email protected]>
| * Improves reference search by StructLiteralMikhail Modin2020-01-271-27/+111
| |
* | Tweak Chalk settingsFlorian Diebold2020-01-271-2/+1
| |
* | Ignore failing impl Trait testsFlorian Diebold2020-01-271-0/+2
| |
* | Upgrade ChalkFlorian Diebold2020-01-273-61/+71
|/
* Merge #2883bors[bot]2020-01-274-111/+208
|\ | | | | | | | | | | | | | | 2883: Implement Syntax Highlight inside macro call r=matklad a=edwin0cheng Co-authored-by: Edwin Cheng <[email protected]>
| * Implement Syntax Highlight inside MacroEdwin Cheng2020-01-204-111/+208
| |
* | Merge #2887bors[bot]2020-01-279-18/+491
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2887: Initial auto import action implementation r=matklad a=SomeoneToIgnore Closes https://github.com/rust-analyzer/rust-analyzer/issues/2180 Adds an auto import action implementation. This implementation is not ideal and has a few limitations: * The import search functionality should be moved into a separate crate accessible from ra_assists. This requires a lot of changes and a preliminary design. Currently the functionality is provided as a trait impl, more on that here: https://github.com/rust-analyzer/rust-analyzer/issues/2180#issuecomment-575690942 * Due to the design desicion from the previous item, no doctests are run for the new aciton (look for a new FIXME in the PR) * For the same reason, I have to create the mock trait implementaion to test the assist * Ideally, I think we should have this feature as a diagnostics (that detects an absense of an import) that has a corresponding quickfix action that gets evaluated on demand. Curretly we perform the import search every time we resolve the import which looks suboptimal. This requires `classify_name_ref` to be moved from ra_ide, so not done currently. A few improvements to the imports mechanism to be considered later: * Constants like `ra_syntax::SyntaxKind::NAME` are not imported, because they are not present in the database * Method usages are not imported, they are found in the database, but `find_use_path` does not return any import paths for them * Some import paths returned by the `find_use_path` method end up in `core::` or `alloc::` instead of `std:`, for example: `core::fmt::Debug` instead of `std::fmt::Debug`. This is not an error techically, but still looks weird. * No detection of cases where a trait should be imported in order to be able to call a method * Improve `auto_import_text_edit` functionality: refactor it and move away from the place it is now, add better logic for merging the new import with already existing imports Co-authored-by: Kirill Bulatov <[email protected]>
| * | Code review fixesKirill Bulatov2020-01-274-11/+11
| | |
| * | Enforce alphabetical import sortingKirill Bulatov2020-01-261-2/+3
| | |
| * | Adjust the testsKirill Bulatov2020-01-263-61/+150
| | |
| * | Have a better trait interfaceKirill Bulatov2020-01-264-64/+45
| | |
| * | Raise the import search query capKirill Bulatov2020-01-261-2/+3
| | |
| * | Remove unnecessary lifetime parameterKirill Bulatov2020-01-263-9/+9
| | |
| * | Initial auto import action implementationKirill Bulatov2020-01-269-19/+420
| | |
* | | Move snaps to new naming schemeJeremy Kolb2020-01-267-0/+0
| | |
* | | Update cratesJeremy Kolb2020-01-264-4/+4
|/ /
* | Merge #2906bors[bot]2020-01-262-5/+25
|\ \ | | | | | | | | | | | | | | | | | | | | | 2906: Fix thread priority problems on windows r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | Bump main thread priority on windowsAleksey Kladov2020-01-262-0/+22
| | |
| * | Use default threadpool sizeAleksey Kladov2020-01-251-5/+3
| | |
* | | fixed inline_local_variable bugTomáš2020-01-251-0/+15
|/ /
* | Merge #2899bors[bot]2020-01-251-1/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 2899: Provide more runners for potential tests r=matklad a=SomeoneToIgnore Based on the https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Runners.20for.20custom.20test.20annotations discussion. Adds a test runner for every method that has an annotation that contains `test` word in it, allowing to run tests annotated with custom testing annotations such as `#[tokio::test]`, `#[test_case(...)]` and others at costs of potentially emitting some false-positives. Co-authored-by: Kirill Bulatov <[email protected]>
| * | Provide more runners for potential testsKirill Bulatov2020-01-231-1/+15
| | |
* | | Add print_time helperAleksey Kladov2020-01-251-0/+15
| | |
* | | Disable env_logger humantime featureAleksey Kladov2020-01-252-2/+2
| | | | | | | | | | | | | | | We rarely care about timings of events, and, when we care, we need millisecond precision
* | | Cancel requests during shutdownAleksey Kladov2020-01-243-5/+10
| | |
* | | Remove RWLock from check watcher.Emil Lauridsen2020-01-235-18/+16
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | @matklad mentioned this might be a good idea. So the general idea is that we don't really need the lock, as we can just clone the check watcher state when creating a snapshot. We can then use `Arc::get_mut` to get mutable access to the state from `WorldState` when needed. Running with this it seems to improve responsiveness a bit while cargo is running, but I have no hard numbers to prove it. In any case, a serialization point less is always better when we're trying to be responsive.
* | Update crateskjeremy2020-01-222-2/+2
| |
* | Omit default parameters for reference typesKirill Bulatov2020-01-223-3/+20
| |
* | Fixed a typoVeetaha2020-01-221-1/+1
| |
* | Fixed a typoVeetaha2020-01-221-1/+1
| |
* | Preserved a comment on the bug previously present in ast::Literal::kind()Veetaha2020-01-221-0/+5
| |
* | ra_syntax: remove code duplication and token reevaluation from ↵Veetaha2020-01-222-32/+22
| | | | | | | | ast::Literal::kind()