rust/rhg/src/commands/debugignorerhg.rs
changeset 52557 b89c934e6269
parent 52354 ff19ddb256b3
--- a/rust/rhg/src/commands/debugignorerhg.rs	Fri Dec 06 20:27:59 2024 +0000
+++ b/rust/rhg/src/commands/debugignorerhg.rs	Fri Dec 13 15:05:37 2024 +0000
@@ -1,8 +1,10 @@
 use crate::error::CommandError;
+use crate::ui::Ui;
 use clap::Arg;
 use hg::dirstate::status::StatusError;
 use hg::filepatterns::RegexCompleteness;
-use hg::matchers::get_ignore_matcher_pre;
+use hg::matchers::{get_ignore_matcher_pre, ReSyntax};
+use hg::repo::Repo;
 use log::warn;
 
 pub const HELP_TEXT: &str = "
@@ -24,12 +26,19 @@
     ).about(HELP_TEXT)
 }
 
-pub fn run(invocation: &crate::CliInvocation) -> Result<(), CommandError> {
-    let repo = invocation.repo?;
-    let args = invocation.subcommand_args;
+pub enum WhichPatterns {
+    All,
+    SlowPathOnly,
+}
 
+pub fn work(
+    repo: &Repo,
+    ui: &Ui,
+    which: WhichPatterns,
+    syntax: ReSyntax,
+) -> Result<(), CommandError> {
     let ignore_file = repo.working_directory_vfs().join(".hgignore"); // TODO hardcoded
-    let all_patterns = args.get_flag("all-patterns");
+    let all_patterns = matches!(which, WhichPatterns::All);
 
     let (ignore_matcher, warnings) = get_ignore_matcher_pre(
         vec![ignore_file],
@@ -51,8 +60,22 @@
         warn!("Pattern warnings: {:?}", &warnings);
     }
 
-    let patterns = ignore_matcher.debug_get_patterns();
-    invocation.ui.write_stdout(patterns)?;
-    invocation.ui.write_stdout(b"\n")?;
+    let patterns = ignore_matcher.debug_get_patterns(syntax);
+    ui.write_stdout(&patterns)?;
+    ui.write_stdout(b"\n")?;
     Ok(())
 }
+
+pub fn run(invocation: &crate::CliInvocation) -> Result<(), CommandError> {
+    let repo = invocation.repo?;
+    let args = invocation.subcommand_args;
+
+    let all_patterns = args.get_flag("all-patterns");
+    let patterns = if all_patterns {
+        WhichPatterns::All
+    } else {
+        WhichPatterns::SlowPathOnly
+    };
+
+    work(repo, invocation.ui, patterns, ReSyntax::Internal)
+}