aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Merge #2959bors[bot]2020-02-0314-247/+244
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2959: Rework how we send diagnostics to client r=matklad a=kiljacken The previous way of sending from the thread pool suffered from stale diagnostics due to being canceled before we could clear the old ones. The key change is moving to sending diagnostics from the main loop thread, but doing all the hard work in the thread pool. This should provide the best of both worlds, with little to no of the downsides. This should hopefully fix a lot of issues, but we'll need testing in each individual issue to be sure. Co-authored-by: Emil Lauridsen <[email protected]>
| * | | Update snapshot tests due to removed SuggestedFixEmil Lauridsen2020-02-037-39/+67
| | | |
| * | | Remove stray todoEmil Lauridsen2020-02-031-1/+0
| | | |
| * | | Rework how we send diagnostics to client.Emil Lauridsen2020-02-037-208/+178
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous way of sending from the thread pool suffered from stale diagnostics due to being canceled before we could clear the old ones. The key change is moving to sending diagnostics from the main loop thread, but doing all the hard work in the thread pool. This should provide the best of both worlds, with little to no of the downsides. This should hopefully fix a lot of issues, but we'll need testing in each individual issue to be sure.
* / | Use name only when searching for an import candidateKirill Bulatov2020-02-021-6/+16
|/ /
* | Avoid premature pessimizationAleksey Kladov2020-02-023-33/+34
| | | | | | | | | | | | The extra allocation for message should not matter here at all, but using a static string is just as ergonomic, if not more, and there's no reason to write deliberately slow code
* | Merge #2982bors[bot]2020-02-026-42/+90
|\ \ | |/ |/| | | | | | | | | | | 2982: Merge imports when auto importing r=flodiebold a=SomeoneToIgnore Co-authored-by: Kirill Bulatov <[email protected]>
| * Remove obsolete rustdocKirill Bulatov2020-02-021-1/+0
| |
| * Code review fixesKirill Bulatov2020-02-023-22/+19
| |
| * Require ModPath for importingKirill Bulatov2020-02-026-37/+65
| |
| * Merge imports when auto importingKirill Bulatov2020-02-021-6/+30
| |
* | Auto import functionsKirill Bulatov2020-02-012-6/+35
|/
* Prevent child cargo process from messing with our stdinAleksey Kladov2020-02-011-0/+1
| | | | | | | | By default, `spawn` inherits stderr/stdout/stderr of the parent process, and so, if child, for example does fcntl(O_NONBLOCK), weird stuff happens to us. Closes https://github.com/rust-analyzer/lsp-server/pull/10
* Merge #2965bors[bot]2020-02-011-6/+10
|\ | | | | | | | | | | | | | | 2965: Improve auto import message r=kiljacken a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| * Improve auto import messageLaurențiu Nicola2020-01-311-6/+10
| |
* | Fix extra parentheses warningsLaurențiu Nicola2020-01-311-2/+2
|/
* Small cleanupAleksey Kladov2020-01-311-4/+6
|
* Add a FIXME noteAleksey Kladov2020-01-301-0/+3
|
* Merge #2920bors[bot]2020-01-301-2/+18
|\ | | | | | | | | | | | | | | | | | | 2920: Better handle illformed node id from metadata r=matklad a=edwin0cheng In some rare cases, deps node-id from cargo-metadata do not match its version-id, which cause a panic in `cargo-workspace.rs`. This PR try to ignore these ill-formed node id from `cargo-metadata`. An alternative is return `Err` in these cases but I think make it resilience is a better choice here. Related #2767 Co-authored-by: Edwin Cheng <[email protected]>
| * Ignore illform node id from metadataEdwin Cheng2020-01-281-2/+18
| |
* | Simplify fixture parsingAleksey Kladov2020-01-301-21/+8
| |
* | Merge #2895bors[bot]2020-01-291-46/+71
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2895: Rewrite ra_prof's profile printing r=michalt a=michalt This changes the way we print things to first construct a mapping from events to the children and uses that mapping to actually print things. It should not change the actual output that we produce. The new approach two benefits: * It avoids a potential quadratic behavior of the previous approach. For instance, for a vector of N elements: ``` [Message{level: (N - 1)}, ..., Message{level: 1}, Message{level: 0}] ``` we would first do a linear scan to find entry with level 0, then another scan to find one with level 1, etc. * It makes it much easier to improve the output in the future, because we now pre-compute the children for each entry and can easily take that into account when printing. Signed-off-by: Michal Terepeta <[email protected]> Co-authored-by: Michal Terepeta <[email protected]>
| * | A couple of small improvements to ra_prof printingMichal Terepeta2020-01-291-3/+3
| | | | | | | | | | | | | | | | | | Based on suggestions from @matklad. Signed-off-by: Michal Terepeta <[email protected]>
| * | Rewrite ra_prof's profile printingMichal Terepeta2020-01-221-46/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the way we print things to first construct a mapping from events to the children and uses that mapping to actually print things. It should not change the actual output that we produce. The new approach two benefits: * It avoids a potential quadratic behavior of the previous approach. For instance, for a vector of N elements: ``` [Message{level: (N - 1)}, ..., Message{level: 1}, Message{level: 0}] ``` we would first do a linear scan to find entry with level 0, then another scan to find one with level 1, etc. * It makes it much easier to improve the output in the future, because we now pre-compute the children for each entry and can easily take that into account when printing. Signed-off-by: Michal Terepeta <[email protected]>
* | | Merge #2943bors[bot]2020-01-292-20/+53
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2943: Re-sync queries for memory usage measurnment r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Re-sync queries for memory usage measurnmentAleksey Kladov2020-01-292-20/+53
| | | |
* | | | Properly select a target for auto importingKirill Bulatov2020-01-291-29/+17
|/ / /
* | | Simplify fixture parsingAleksey Kladov2020-01-291-20/+19
| | |
* | | Fix long loop timeoutAleksey Kladov2020-01-291-1/+1
| | |
* | | Change error output to make a bit more senseEmil Lauridsen2020-01-291-2/+6
| | |
* | | 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
| | |