mirror of
https://github.com/martinvonz/jj.git
synced 2025-05-14 11:44:27 +00:00
graphlog: inline node_template_for_key()
It's easier to follow than function call with 3 string parameters.
This commit is contained in:
parent
36ab165b57
commit
dda0980c4d
@ -85,6 +85,7 @@ pub(crate) fn cmd_evolog(
|
||||
let start_commit = workspace_command.resolve_single_rev(&args.revision)?;
|
||||
|
||||
let diff_renderer = workspace_command.diff_renderer_for_log(&args.diff_format, args.patch)?;
|
||||
let graph_style = GraphStyle::from_settings(command.settings())?;
|
||||
let with_content_format = LogContentFormat::new(ui, command.settings())?;
|
||||
|
||||
let template;
|
||||
@ -105,7 +106,7 @@ pub(crate) fn cmd_evolog(
|
||||
node_template = workspace_command
|
||||
.parse_template(
|
||||
&language,
|
||||
&get_node_template(command.settings())?,
|
||||
&get_node_template(graph_style, command.settings())?,
|
||||
CommitTemplateLanguage::wrap_commit_opt,
|
||||
)?
|
||||
.labeled("node");
|
||||
@ -144,7 +145,6 @@ pub(crate) fn cmd_evolog(
|
||||
commits.truncate(n);
|
||||
}
|
||||
if !args.no_graph {
|
||||
let graph_style = GraphStyle::from_settings(command.settings())?;
|
||||
let mut graph = get_graphlog(graph_style, formatter.raw());
|
||||
for commit in commits {
|
||||
let mut edges = vec![];
|
||||
|
@ -20,6 +20,7 @@ use jj_lib::repo::Repo;
|
||||
use jj_lib::revset::RevsetExpression;
|
||||
use jj_lib::revset::RevsetFilterPredicate;
|
||||
use jj_lib::revset::RevsetIteratorExt;
|
||||
use jj_lib::settings::ConfigResultExt as _;
|
||||
use jj_lib::settings::UserSettings;
|
||||
use tracing::instrument;
|
||||
|
||||
@ -31,7 +32,6 @@ use crate::command_error::CommandError;
|
||||
use crate::commit_templater::CommitTemplateLanguage;
|
||||
use crate::diff_util::DiffFormatArgs;
|
||||
use crate::graphlog::get_graphlog;
|
||||
use crate::graphlog::node_template_for_key;
|
||||
use crate::graphlog::Edge;
|
||||
use crate::graphlog::GraphStyle;
|
||||
use crate::ui::Ui;
|
||||
@ -120,6 +120,7 @@ pub(crate) fn cmd_log(
|
||||
|
||||
let store = repo.store();
|
||||
let diff_renderer = workspace_command.diff_renderer_for_log(&args.diff_format, args.patch)?;
|
||||
let graph_style = GraphStyle::from_settings(command.settings())?;
|
||||
|
||||
let use_elided_nodes = command
|
||||
.settings()
|
||||
@ -145,7 +146,7 @@ pub(crate) fn cmd_log(
|
||||
node_template = workspace_command
|
||||
.parse_template(
|
||||
&language,
|
||||
&get_node_template(command.settings())?,
|
||||
&get_node_template(graph_style, command.settings())?,
|
||||
CommitTemplateLanguage::wrap_commit_opt,
|
||||
)?
|
||||
.labeled("node");
|
||||
@ -165,7 +166,6 @@ pub(crate) fn cmd_log(
|
||||
let limit = args.limit.or(args.deprecated_limit).unwrap_or(usize::MAX);
|
||||
|
||||
if !args.no_graph {
|
||||
let graph_style = GraphStyle::from_settings(command.settings())?;
|
||||
let mut graph = get_graphlog(graph_style, formatter.raw());
|
||||
let forward_iter = TopoGroupedGraphIterator::new(revset.iter_graph());
|
||||
let iter: Box<dyn Iterator<Item = _>> = if args.reversed {
|
||||
@ -297,11 +297,18 @@ pub(crate) fn cmd_log(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn get_node_template(settings: &UserSettings) -> Result<String, config::ConfigError> {
|
||||
node_template_for_key(
|
||||
settings,
|
||||
"templates.log_node",
|
||||
"builtin_log_node",
|
||||
"builtin_log_node_ascii",
|
||||
)
|
||||
pub fn get_node_template(
|
||||
style: GraphStyle,
|
||||
settings: &UserSettings,
|
||||
) -> Result<String, config::ConfigError> {
|
||||
let symbol = settings
|
||||
.config()
|
||||
.get_string("templates.log_node")
|
||||
.optional()?;
|
||||
let default = if style.is_ascii() {
|
||||
"builtin_log_node_ascii"
|
||||
} else {
|
||||
"builtin_log_node"
|
||||
};
|
||||
Ok(symbol.unwrap_or_else(|| default.to_owned()))
|
||||
}
|
||||
|
@ -15,6 +15,7 @@
|
||||
use std::slice;
|
||||
|
||||
use jj_lib::op_walk;
|
||||
use jj_lib::settings::ConfigResultExt as _;
|
||||
use jj_lib::settings::UserSettings;
|
||||
|
||||
use crate::cli_util::format_template;
|
||||
@ -22,7 +23,6 @@ use crate::cli_util::CommandHelper;
|
||||
use crate::cli_util::LogContentFormat;
|
||||
use crate::command_error::CommandError;
|
||||
use crate::graphlog::get_graphlog;
|
||||
use crate::graphlog::node_template_for_key;
|
||||
use crate::graphlog::Edge;
|
||||
use crate::graphlog::GraphStyle;
|
||||
use crate::operation_templater::OperationTemplateLanguage;
|
||||
@ -73,6 +73,7 @@ pub fn cmd_op_log(
|
||||
};
|
||||
let op_store = current_op.op_store();
|
||||
|
||||
let graph_style = GraphStyle::from_settings(command.settings())?;
|
||||
let with_content_format = LogContentFormat::new(ui, command.settings())?;
|
||||
|
||||
let template;
|
||||
@ -99,7 +100,7 @@ pub fn cmd_op_log(
|
||||
.parse_template(
|
||||
ui,
|
||||
&language,
|
||||
&get_node_template(command.settings())?,
|
||||
&get_node_template(graph_style, command.settings())?,
|
||||
OperationTemplateLanguage::wrap_operation,
|
||||
)?
|
||||
.labeled("node");
|
||||
@ -117,7 +118,6 @@ pub fn cmd_op_log(
|
||||
let limit = args.limit.or(args.deprecated_limit).unwrap_or(usize::MAX);
|
||||
let iter = op_walk::walk_ancestors(slice::from_ref(¤t_op)).take(limit);
|
||||
if !args.no_graph {
|
||||
let graph_style = GraphStyle::from_settings(command.settings())?;
|
||||
let mut graph = get_graphlog(graph_style, formatter.raw());
|
||||
for op in iter {
|
||||
let op = op?;
|
||||
@ -152,11 +152,18 @@ pub fn cmd_op_log(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn get_node_template(settings: &UserSettings) -> Result<String, config::ConfigError> {
|
||||
node_template_for_key(
|
||||
settings,
|
||||
"templates.op_log_node",
|
||||
"builtin_op_log_node",
|
||||
"builtin_op_log_node_ascii",
|
||||
)
|
||||
fn get_node_template(
|
||||
style: GraphStyle,
|
||||
settings: &UserSettings,
|
||||
) -> Result<String, config::ConfigError> {
|
||||
let symbol = settings
|
||||
.config()
|
||||
.get_string("templates.op_log_node")
|
||||
.optional()?;
|
||||
let default = if style.is_ascii() {
|
||||
"builtin_op_log_node_ascii"
|
||||
} else {
|
||||
"builtin_op_log_node"
|
||||
};
|
||||
Ok(symbol.unwrap_or_else(|| default.to_owned()))
|
||||
}
|
||||
|
@ -17,7 +17,6 @@ use std::io;
|
||||
use std::io::Write;
|
||||
|
||||
use itertools::Itertools;
|
||||
use jj_lib::settings::ConfigResultExt as _;
|
||||
use jj_lib::settings::UserSettings;
|
||||
use renderdag::Ancestor;
|
||||
use renderdag::GraphRowRenderer;
|
||||
@ -125,20 +124,6 @@ impl GraphStyle {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn node_template_for_key(
|
||||
settings: &UserSettings,
|
||||
key: &str,
|
||||
fallback: &str,
|
||||
ascii_fallback: &str,
|
||||
) -> Result<String, config::ConfigError> {
|
||||
let symbol = settings.config().get_string(key).optional()?;
|
||||
if GraphStyle::from_settings(settings)?.is_ascii() {
|
||||
Ok(symbol.unwrap_or_else(|| ascii_fallback.to_owned()))
|
||||
} else {
|
||||
Ok(symbol.unwrap_or_else(|| fallback.to_owned()))
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_graphlog<'a, K: Clone + Eq + Hash + 'a>(
|
||||
style: GraphStyle,
|
||||
formatter: &'a mut dyn Write,
|
||||
|
Loading…
x
Reference in New Issue
Block a user