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 start_commit = workspace_command.resolve_single_rev(&args.revision)?;
|
||||||
|
|
||||||
let diff_renderer = workspace_command.diff_renderer_for_log(&args.diff_format, args.patch)?;
|
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 with_content_format = LogContentFormat::new(ui, command.settings())?;
|
||||||
|
|
||||||
let template;
|
let template;
|
||||||
@ -105,7 +106,7 @@ pub(crate) fn cmd_evolog(
|
|||||||
node_template = workspace_command
|
node_template = workspace_command
|
||||||
.parse_template(
|
.parse_template(
|
||||||
&language,
|
&language,
|
||||||
&get_node_template(command.settings())?,
|
&get_node_template(graph_style, command.settings())?,
|
||||||
CommitTemplateLanguage::wrap_commit_opt,
|
CommitTemplateLanguage::wrap_commit_opt,
|
||||||
)?
|
)?
|
||||||
.labeled("node");
|
.labeled("node");
|
||||||
@ -144,7 +145,6 @@ pub(crate) fn cmd_evolog(
|
|||||||
commits.truncate(n);
|
commits.truncate(n);
|
||||||
}
|
}
|
||||||
if !args.no_graph {
|
if !args.no_graph {
|
||||||
let graph_style = GraphStyle::from_settings(command.settings())?;
|
|
||||||
let mut graph = get_graphlog(graph_style, formatter.raw());
|
let mut graph = get_graphlog(graph_style, formatter.raw());
|
||||||
for commit in commits {
|
for commit in commits {
|
||||||
let mut edges = vec![];
|
let mut edges = vec![];
|
||||||
|
@ -20,6 +20,7 @@ use jj_lib::repo::Repo;
|
|||||||
use jj_lib::revset::RevsetExpression;
|
use jj_lib::revset::RevsetExpression;
|
||||||
use jj_lib::revset::RevsetFilterPredicate;
|
use jj_lib::revset::RevsetFilterPredicate;
|
||||||
use jj_lib::revset::RevsetIteratorExt;
|
use jj_lib::revset::RevsetIteratorExt;
|
||||||
|
use jj_lib::settings::ConfigResultExt as _;
|
||||||
use jj_lib::settings::UserSettings;
|
use jj_lib::settings::UserSettings;
|
||||||
use tracing::instrument;
|
use tracing::instrument;
|
||||||
|
|
||||||
@ -31,7 +32,6 @@ use crate::command_error::CommandError;
|
|||||||
use crate::commit_templater::CommitTemplateLanguage;
|
use crate::commit_templater::CommitTemplateLanguage;
|
||||||
use crate::diff_util::DiffFormatArgs;
|
use crate::diff_util::DiffFormatArgs;
|
||||||
use crate::graphlog::get_graphlog;
|
use crate::graphlog::get_graphlog;
|
||||||
use crate::graphlog::node_template_for_key;
|
|
||||||
use crate::graphlog::Edge;
|
use crate::graphlog::Edge;
|
||||||
use crate::graphlog::GraphStyle;
|
use crate::graphlog::GraphStyle;
|
||||||
use crate::ui::Ui;
|
use crate::ui::Ui;
|
||||||
@ -120,6 +120,7 @@ pub(crate) fn cmd_log(
|
|||||||
|
|
||||||
let store = repo.store();
|
let store = repo.store();
|
||||||
let diff_renderer = workspace_command.diff_renderer_for_log(&args.diff_format, args.patch)?;
|
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
|
let use_elided_nodes = command
|
||||||
.settings()
|
.settings()
|
||||||
@ -145,7 +146,7 @@ pub(crate) fn cmd_log(
|
|||||||
node_template = workspace_command
|
node_template = workspace_command
|
||||||
.parse_template(
|
.parse_template(
|
||||||
&language,
|
&language,
|
||||||
&get_node_template(command.settings())?,
|
&get_node_template(graph_style, command.settings())?,
|
||||||
CommitTemplateLanguage::wrap_commit_opt,
|
CommitTemplateLanguage::wrap_commit_opt,
|
||||||
)?
|
)?
|
||||||
.labeled("node");
|
.labeled("node");
|
||||||
@ -165,7 +166,6 @@ pub(crate) fn cmd_log(
|
|||||||
let limit = args.limit.or(args.deprecated_limit).unwrap_or(usize::MAX);
|
let limit = args.limit.or(args.deprecated_limit).unwrap_or(usize::MAX);
|
||||||
|
|
||||||
if !args.no_graph {
|
if !args.no_graph {
|
||||||
let graph_style = GraphStyle::from_settings(command.settings())?;
|
|
||||||
let mut graph = get_graphlog(graph_style, formatter.raw());
|
let mut graph = get_graphlog(graph_style, formatter.raw());
|
||||||
let forward_iter = TopoGroupedGraphIterator::new(revset.iter_graph());
|
let forward_iter = TopoGroupedGraphIterator::new(revset.iter_graph());
|
||||||
let iter: Box<dyn Iterator<Item = _>> = if args.reversed {
|
let iter: Box<dyn Iterator<Item = _>> = if args.reversed {
|
||||||
@ -297,11 +297,18 @@ pub(crate) fn cmd_log(
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_node_template(settings: &UserSettings) -> Result<String, config::ConfigError> {
|
pub fn get_node_template(
|
||||||
node_template_for_key(
|
style: GraphStyle,
|
||||||
settings,
|
settings: &UserSettings,
|
||||||
"templates.log_node",
|
) -> Result<String, config::ConfigError> {
|
||||||
"builtin_log_node",
|
let symbol = settings
|
||||||
"builtin_log_node_ascii",
|
.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 std::slice;
|
||||||
|
|
||||||
use jj_lib::op_walk;
|
use jj_lib::op_walk;
|
||||||
|
use jj_lib::settings::ConfigResultExt as _;
|
||||||
use jj_lib::settings::UserSettings;
|
use jj_lib::settings::UserSettings;
|
||||||
|
|
||||||
use crate::cli_util::format_template;
|
use crate::cli_util::format_template;
|
||||||
@ -22,7 +23,6 @@ use crate::cli_util::CommandHelper;
|
|||||||
use crate::cli_util::LogContentFormat;
|
use crate::cli_util::LogContentFormat;
|
||||||
use crate::command_error::CommandError;
|
use crate::command_error::CommandError;
|
||||||
use crate::graphlog::get_graphlog;
|
use crate::graphlog::get_graphlog;
|
||||||
use crate::graphlog::node_template_for_key;
|
|
||||||
use crate::graphlog::Edge;
|
use crate::graphlog::Edge;
|
||||||
use crate::graphlog::GraphStyle;
|
use crate::graphlog::GraphStyle;
|
||||||
use crate::operation_templater::OperationTemplateLanguage;
|
use crate::operation_templater::OperationTemplateLanguage;
|
||||||
@ -73,6 +73,7 @@ pub fn cmd_op_log(
|
|||||||
};
|
};
|
||||||
let op_store = current_op.op_store();
|
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 with_content_format = LogContentFormat::new(ui, command.settings())?;
|
||||||
|
|
||||||
let template;
|
let template;
|
||||||
@ -99,7 +100,7 @@ pub fn cmd_op_log(
|
|||||||
.parse_template(
|
.parse_template(
|
||||||
ui,
|
ui,
|
||||||
&language,
|
&language,
|
||||||
&get_node_template(command.settings())?,
|
&get_node_template(graph_style, command.settings())?,
|
||||||
OperationTemplateLanguage::wrap_operation,
|
OperationTemplateLanguage::wrap_operation,
|
||||||
)?
|
)?
|
||||||
.labeled("node");
|
.labeled("node");
|
||||||
@ -117,7 +118,6 @@ pub fn cmd_op_log(
|
|||||||
let limit = args.limit.or(args.deprecated_limit).unwrap_or(usize::MAX);
|
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);
|
let iter = op_walk::walk_ancestors(slice::from_ref(¤t_op)).take(limit);
|
||||||
if !args.no_graph {
|
if !args.no_graph {
|
||||||
let graph_style = GraphStyle::from_settings(command.settings())?;
|
|
||||||
let mut graph = get_graphlog(graph_style, formatter.raw());
|
let mut graph = get_graphlog(graph_style, formatter.raw());
|
||||||
for op in iter {
|
for op in iter {
|
||||||
let op = op?;
|
let op = op?;
|
||||||
@ -152,11 +152,18 @@ pub fn cmd_op_log(
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_node_template(settings: &UserSettings) -> Result<String, config::ConfigError> {
|
fn get_node_template(
|
||||||
node_template_for_key(
|
style: GraphStyle,
|
||||||
settings,
|
settings: &UserSettings,
|
||||||
"templates.op_log_node",
|
) -> Result<String, config::ConfigError> {
|
||||||
"builtin_op_log_node",
|
let symbol = settings
|
||||||
"builtin_op_log_node_ascii",
|
.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 std::io::Write;
|
||||||
|
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use jj_lib::settings::ConfigResultExt as _;
|
|
||||||
use jj_lib::settings::UserSettings;
|
use jj_lib::settings::UserSettings;
|
||||||
use renderdag::Ancestor;
|
use renderdag::Ancestor;
|
||||||
use renderdag::GraphRowRenderer;
|
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>(
|
pub fn get_graphlog<'a, K: Clone + Eq + Hash + 'a>(
|
||||||
style: GraphStyle,
|
style: GraphStyle,
|
||||||
formatter: &'a mut dyn Write,
|
formatter: &'a mut dyn Write,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user