From ddfce6d2c9addea08bd8b15361772ea5499bbfb7 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Sat, 29 Jun 2024 20:38:48 -0500 Subject: [PATCH] cli_util: extract `new_id_prefix_context` method --- cli/src/cli_util.rs | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/cli/src/cli_util.rs b/cli/src/cli_util.rs index b8fdb89b8..4af7e9218 100644 --- a/cli/src/cli_util.rs +++ b/cli/src/cli_util.rs @@ -999,25 +999,28 @@ impl WorkspaceCommandHelper { ) } + fn new_id_prefix_context(&self) -> Result { + let mut context: IdPrefixContext = IdPrefixContext::new(self.revset_extensions.clone()); + let revset_string: String = self + .settings + .config() + .get_string("revsets.short-prefixes") + .unwrap_or_else(|_| self.settings.default_revset()); + if !revset_string.is_empty() { + let (expression, modifier) = + revset::parse_with_modifier(&revset_string, &self.revset_parse_context()).map_err( + |err| config_error_with_message("Invalid `revsets.short-prefixes`", err), + )?; + let (None | Some(RevsetModifier::All)) = modifier; + context = context.disambiguate_within(revset::optimize(expression)); + } + Ok(context) + } + pub fn id_prefix_context(&self) -> Result<&IdPrefixContext, CommandError> { - self.user_repo.id_prefix_context.get_or_try_init(|| { - let mut context: IdPrefixContext = IdPrefixContext::new(self.revset_extensions.clone()); - let revset_string: String = self - .settings - .config() - .get_string("revsets.short-prefixes") - .unwrap_or_else(|_| self.settings.default_revset()); - if !revset_string.is_empty() { - let (expression, modifier) = - revset::parse_with_modifier(&revset_string, &self.revset_parse_context()) - .map_err(|err| { - config_error_with_message("Invalid `revsets.short-prefixes`", err) - })?; - let (None | Some(RevsetModifier::All)) = modifier; - context = context.disambiguate_within(revset::optimize(expression)); - } - Ok(context) - }) + self.user_repo + .id_prefix_context + .get_or_try_init(|| self.new_id_prefix_context()) } pub fn template_aliases_map(&self) -> &TemplateAliasesMap {