aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* SSR: Disable matching within use declarationsDavid Lattimore2020-07-242-1/+51
| | | | | It currently does the wrong thing when the use declaration contains braces.
* SSR: Use Definition::find_usages to speed up matching.David Lattimore2020-07-245-24/+157
| | | | When the search pattern contains a path, this substantially speeds up finding matches, especially if the path references a private item.
* SSR: Match paths based on what they resolve toDavid Lattimore2020-07-249-61/+482
| | | | Also render template paths appropriately for their context.
* SSR: Pass current file position through to SSR code.David Lattimore2020-07-2411-32/+88
| | | | In a subsequent commit, it will be used for resolving paths.
* SSR: Refactor to not rely on recursive search for nesting of matchesDavid Lattimore2020-07-244-27/+120
| | | | | | | | | Previously, submatches were handled simply by searching in placeholders for more matches. That only works if we search all nodes in the tree recursively. In a subsequent commit, I intend to make search not always be recursive recursive. This commit prepares for that by finding all matches, even if they overlap, then nesting them and removing overlapping matches.
* SSR: Add a couple of tests for non-recursive searchDavid Lattimore2020-07-241-0/+33
| | | | | These tests already pass, however once we switch to non-recursive search, it'd be easy for these tests to not pass.
* SSR tests: Define all paths needed for templatesDavid Lattimore2020-07-241-26/+76
| | | | | | | In a later commit, paths in templates will be resolved. This allows us to render the path with appropriate qualifiers for its context. Here we prepare for that change by updating existing tests where I'd previously not bothered to define the items that the template referred to.
* Move iteration over all files into the SSR crateDavid Lattimore2020-07-246-89/+92
| | | | The methods `edits_for_file` and `find_matches_in_file` are replaced with just `edits` and `matches`. This simplifies the API a bit, but more importantly it makes it possible in a subsequent commit for SSR to decide to not search all files.
* SSR: Move search code into a submoduleDavid Lattimore2020-07-242-48/+56
| | | | | | Also renamed find_matches to slow_scan_node to reflect that it's a slow way to do things. Actually the name came from a later commit and probably makes more sense once there's an alternative.
* SSR: Parse template as Rust code.David Lattimore2020-07-245-82/+112
| | | | | | This is in preparation for a subsequent commit where we add special handling for paths in the template, allowing them to be qualified differently in different contexts.
* SSR: Change the way rules are stored internally.David Lattimore2020-07-244-107/+123
| | | | | | | | | | | | | | | | | | | | | | Previously we had: - Multiple rules - Each rule had its pattern parsed as an expression, path etc This meant that there were two levels at which there could be multiple rules. Now we just have multiple rules. If a pattern can parse as more than one kind of thing, then they get stored as multiple separate rules. We also now don't have separate fields for the different kinds of things that a pattern can parse as. This makes adding new kinds of things simpler. Previously, add_search_pattern would construct a rule with a dummy replacement. Now the replacement is an Option. This is slightly cleaner and also opens the way for parsing the replacement template as the same kind of thing as the search pattern.
* SSR: Use expect! in testsDavid Lattimore2020-07-243-37/+38
|
* Merge #5515bors[bot]2020-07-241-0/+1
|\ | | | | | | | | | | | | | | | | | | | | 5515: Add profiling call r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Add profiling callAleksey Kladov2020-07-241-0/+1
| |
* | Merge #5511bors[bot]2020-07-231-3/+6
|\ \ | | | | | | | | | | | | | | | | | | | | | 5511: Set the document version after changes are applied but before vfs r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * | Set the document version after changes are applied but before vfskjeremy2020-07-231-3/+6
| |/
* | Merge #5510bors[bot]2020-07-235-34/+75
|\ \ | |/ |/| | | | | | | | | | | | | | | | | 5510: Lighter weight tempdir r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Lighter weight tempdirAleksey Kladov2020-07-235-34/+75
|/
* Merge #5508bors[bot]2020-07-231-2/+2
|\ | | | | | | | | | | | | | | 5508: Update tracing r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * Update tracingkjeremy2020-07-231-2/+2
|/
* Merge #5507bors[bot]2020-07-236-71/+107
|\ | | | | | | | | | | | | | | | | | | | | | | | | 5507: Require quotes around key-value cfg flags in rust-project.json r=matklad a=matklad This matches rustc command-line flags, as well as the build.rs format. bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Require quotes around key-value cfg flags in rust-project.jsonAleksey Kladov2020-07-236-71/+107
|/ | | | This matches rustc command-line flags, as well as the build.rs format.
* Merge #5506bors[bot]2020-07-234-8/+9
|\ | | | | | | | | | | | | | | | | | | | | 5506: Rename modules r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Rename modulesAleksey Kladov2020-07-234-8/+9
| |
* | Merge #5505bors[bot]2020-07-236-67/+44
|\| | | | | | | | | | | | | | | | | | | | | 5505: Cleanup CFG API r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Cleanup CFG APIAleksey Kladov2020-07-236-63/+44
| |
| * Remove dead codeAleksey Kladov2020-07-231-4/+0
| |
* | Merge #5473bors[bot]2020-07-238-111/+117
|\ \ | |/ |/| | | | | | | | | | | 5473: Changes to rust-project.json r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * More Rustic API for EnvAleksey Kladov2020-07-214-20/+8
| |
| * Apply suggestions from code reviewAleksey Kladov2020-07-211-4/+4
| | | | | | Co-authored-by: Laurențiu Nicola <[email protected]>
| * Document new rust-project.json formatAleksey Kladov2020-07-211-5/+28
| |
| * Replace OUT_DIR in project.json with general envAleksey Kladov2020-07-212-9/+7
| | | | | | | | OUT_DIR doesn't make sense here, as this is a cargo-specific concept
| * Replace roots with include/exclude directoriesAleksey Kladov2020-07-212-31/+32
| |
| * Expose package roots more directlyAleksey Kladov2020-07-213-54/+50
| |
* | Merge #5504bors[bot]2020-07-231-3/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5504: Reduce visibility r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Reduce visibilityAleksey Kladov2020-07-231-3/+3
| | |
* | | Merge #5498bors[bot]2020-07-231-1/+1
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 5498: assists: change_return_type_to_result: clarify assist description r=matklad a=matthiaskrgr I had a -> Option<PathBuf> fn, which I wanted to change to Result<PathBuf, _>, but despite advertising to do so, the assist did not change the result type to Result<PathBuf, _> but instead just wrapped it in a Result: <Result<Option<PathBuf>, _>. I changed the assist description to "Wrap return type in Result" to clarify that the assist only wraps the preexisting type and does not do any actual Option-to-Result refactoring. Co-authored-by: Matthias Krüger <[email protected]>
| * | assists: change_return_type_to_result: clarify assist descriptionMatthias Krüger2020-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | I had a -> Option<PathBuf> fn, which I wanted to change to Result<PathBuf, _>, but despite advertising to do so, the assist did not change the result type to Result<PathBuf, _> but instead just wrapped it in a Result: <Result<Option<PathBuf>, _>. I changed the assist description to "Wrap return type in Result" to clarify that the assist only wraps the preexisting type and does not do any deep Option-to-Result refactoring.
* | | Merge #5480bors[bot]2020-07-231-0/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5480: Fix snippetTextEdits applying to other files r=matklad a=TimoFreiberg Fixes #4551 `vscode.window.visibleTextEditors` only contains editors whose contents are being displayed at the moment, so the previous logic only worked if the other file for which a snippetTextEdit is being received was visible in a separate split. I feel that this is a hacky approach, so feel free to reject it for something nicer :) Co-authored-by: Timo Freiberg <[email protected]>
| * | | Fix snippetTextEdits applying to other filesTimo Freiberg2020-07-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | vscode.window.visibleTextEditors only contains editors whose contents are being displayed at the moment, so the previous logic only worked if the other file for which a snippetTextEdit is being received was visible in a separate split.
* | | | Merge #5500bors[bot]2020-07-232-3/+10
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5500: ProblemMatcher fixes/improvements. r=matklad a=rickvanprim Fixes https://github.com/rust-analyzer/rust-analyzer/issues/5482. ProblemMatcher auto detects relative/absolute paths and matches VSCode LSP's owner and source. VSCode LSP updated to specify owner. Co-authored-by: James Leitch <[email protected]>
| * | | | ProblemMatcher auto detects relative/absolute paths and matches VSCode LSP's ↵James Leitch2020-07-232-3/+10
| | |/ / | |/| | | | | | | | | | owner and source. VSCode LSP updated to specify owner.
* | | | Merge #5503bors[bot]2020-07-235-13/+37
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5503: Replace superslice with API on path to stabilization r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Replace superslice with API on path to stabilizationAleksey Kladov2020-07-235-13/+37
| | | | |
* | | | | Merge #5497bors[bot]2020-07-235-13/+20
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5497: Store macro invocation parameters as text instead of tt r=jonas-schievink a=lnicola We don't want to expand macros on every source change because it can be arbitrarily slow, but the token trees can be rather large. So instead we can cache the invocation parameters (as text). Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | | Store macro invocation parameters as text instead of ttLaurențiu Nicola2020-07-225-13/+20
| | | | |
* | | | | Merge #5501bors[bot]2020-07-231-16/+16
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5501: minor r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | minorAleksey Kladov2020-07-231-16/+16
|/ / / /
* | | | Merge #5492bors[bot]2020-07-223-4/+24
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | 5492: Use symbol tags r=matklad a=kjeremy Currently the only spec'd tag is "deprecated". Co-authored-by: kjeremy <[email protected]>
| * | | Move deprecated attribute to where it is neededkjeremy2020-07-221-2/+6
| | | |