forked from mirrors/jj
cli: proxy parse_commit_template() through WorkspaceCommandHelper
I'll add an alias table there. Since this function borrows self, it can't always be used in between mutable operations. For log-like commands, this should just work fine.
This commit is contained in:
parent
bc7a086192
commit
493cb83fd5
2 changed files with 15 additions and 15 deletions
|
@ -60,6 +60,7 @@ use crate::config::{AnnotatedValue, CommandNameAndArgs, LayeredConfigs};
|
|||
use crate::formatter::{Formatter, PlainTextFormatter};
|
||||
use crate::merge_tools::{ConflictResolveError, DiffEditError};
|
||||
use crate::template_parser::{self, TemplateParseError};
|
||||
use crate::templater::Template;
|
||||
use crate::ui::{ColorChoice, Ui};
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
|
@ -795,6 +796,17 @@ impl WorkspaceCommandHelper {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn parse_commit_template(
|
||||
&self,
|
||||
template_text: &str,
|
||||
) -> Result<Box<dyn Template<Commit> + '_>, TemplateParseError> {
|
||||
template_parser::parse_commit_template(
|
||||
self.repo.as_repo_ref(),
|
||||
self.workspace_id(),
|
||||
template_text,
|
||||
)
|
||||
}
|
||||
|
||||
/// Returns one-line summary of the given `commit`.
|
||||
pub fn format_commit_summary(&self, commit: &Commit) -> String {
|
||||
let mut output = Vec::new();
|
||||
|
|
|
@ -1296,11 +1296,7 @@ fn cmd_show(ui: &mut Ui, command: &CommandHelper, args: &ShowArgs) -> Result<(),
|
|||
if(description, description, {DESCRIPTION_PLACEHOLDER_TEMPLATE} "\n")
|
||||
"\n""#,
|
||||
);
|
||||
let template = crate::template_parser::parse_commit_template(
|
||||
workspace_command.repo().as_repo_ref(),
|
||||
workspace_command.workspace_id(),
|
||||
&template_string,
|
||||
)?;
|
||||
let template = workspace_command.parse_commit_template(&template_string)?;
|
||||
ui.request_pager();
|
||||
let mut formatter = ui.stdout_formatter();
|
||||
let formatter = formatter.as_mut();
|
||||
|
@ -1494,11 +1490,7 @@ fn cmd_log(ui: &mut Ui, command: &CommandHelper, args: &LogArgs) -> Result<(), C
|
|||
Some(value) => value.to_string(),
|
||||
None => log_template(command.settings()),
|
||||
};
|
||||
let template = crate::template_parser::parse_commit_template(
|
||||
repo.as_repo_ref(),
|
||||
workspace_id,
|
||||
&template_string,
|
||||
)?;
|
||||
let template = workspace_command.parse_commit_template(&template_string)?;
|
||||
|
||||
{
|
||||
ui.request_pager();
|
||||
|
@ -1631,11 +1623,7 @@ fn cmd_obslog(ui: &mut Ui, command: &CommandHelper, args: &ObslogArgs) -> Result
|
|||
Some(value) => value.to_string(),
|
||||
None => log_template(command.settings()),
|
||||
};
|
||||
let template = crate::template_parser::parse_commit_template(
|
||||
workspace_command.repo().as_repo_ref(),
|
||||
workspace_id,
|
||||
&template_string,
|
||||
)?;
|
||||
let template = workspace_command.parse_commit_template(&template_string)?;
|
||||
|
||||
ui.request_pager();
|
||||
let mut formatter = ui.stdout_formatter();
|
||||
|
|
Loading…
Reference in a new issue