Skip to content

Commit 045bf21

Browse files
authored
created a function for user defined aliases (#15076)
Hey there, As mentioned in this [issue](#14520), I worked on the functionality of autocompleting the user-defined aliases and I moved the code of user-defined aliases into a separate function by defining two parameters. The first one is global context or gctx and the second one is the commands that can be called in the list_commands function. Thank you! <!-- Thanks for submitting a pull request 🎉! Here are some tips for you: * If this is your first contribution, read "Cargo Contribution Guide" first: https://doc.crates.io/contrib/ * Run `cargo fmt --all` to format your code changes. * Small commits and pull requests are always preferable and easy to review. * If your idea is large and needs feedback from the community, read how: https://doc.crates.io/contrib/process/#working-on-large-features * Cargo takes care of compatibility. Read our design principles: https://doc.crates.io/contrib/design.html * When changing help text of cargo commands, follow the steps to generate docs: https://github.com/rust-lang/cargo/tree/master/src/doc#building-the-man-pages * If your PR is not finished, set it as "draft" PR or add "WIP" in its title. * It's ok to use the CI resources to test your PR, but please don't abuse them. ### What does this PR try to resolve? Explain the motivation behind this change. A clear overview along with an in-depth explanation are helpful. You can use `Fixes #<issue number>` to associate this PR to an existing issue. ### How should we test and review this PR? Demonstrate how you test this change and guide reviewers through your PR. With a smooth review process, a pull request usually gets reviewed quicker. If you don't know how to write and run your tests, please read the guide: https://doc.crates.io/contrib/tests ### Additional information Other information you want to mention in this PR, such as prior arts, future extensions, an unresolved problem, or a TODO list. -->
2 parents 531215f + e01660d commit 045bf21

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

src/bin/cargo/main.rs

+17-10
Original file line numberDiff line numberDiff line change
@@ -205,16 +205,8 @@ fn list_commands(gctx: &GlobalContext) -> BTreeMap<String, CommandInfo> {
205205
}
206206

207207
// Add the user-defined aliases
208-
if let Ok(aliases) = gctx.get::<BTreeMap<String, StringOrVec>>("alias") {
209-
for (name, target) in aliases.iter() {
210-
commands.insert(
211-
name.to_string(),
212-
CommandInfo::Alias {
213-
target: target.clone(),
214-
},
215-
);
216-
}
217-
}
208+
let alias_commands = user_defined_aliases(gctx);
209+
commands.extend(alias_commands);
218210

219211
// `help` is special, so it needs to be inserted separately.
220212
commands.insert(
@@ -258,6 +250,21 @@ fn third_party_subcommands(gctx: &GlobalContext) -> BTreeMap<String, CommandInfo
258250
commands
259251
}
260252

253+
fn user_defined_aliases(gctx: &GlobalContext) -> BTreeMap<String, CommandInfo> {
254+
let mut commands = BTreeMap::new();
255+
if let Ok(aliases) = gctx.get::<BTreeMap<String, StringOrVec>>("alias") {
256+
for (name, target) in aliases.iter() {
257+
commands.insert(
258+
name.to_string(),
259+
CommandInfo::Alias {
260+
target: target.clone(),
261+
},
262+
);
263+
}
264+
}
265+
commands
266+
}
267+
261268
fn find_external_subcommand(gctx: &GlobalContext, cmd: &str) -> Option<PathBuf> {
262269
let command_exe = format!("cargo-{}{}", cmd, env::consts::EXE_SUFFIX);
263270
search_directories(gctx)

0 commit comments

Comments
 (0)