Omit files and print only match options added
These are essential for using the tool for scripting purposes.
This commit is contained in:
@@ -7,6 +7,8 @@ pub struct Config {
|
||||
pub ignore_case: bool,
|
||||
pub path: String,
|
||||
pub use_gitignore: bool,
|
||||
pub omit_filenames: bool,
|
||||
pub match_only: bool,
|
||||
}
|
||||
|
||||
impl Config {
|
||||
@@ -36,6 +38,16 @@ impl Config {
|
||||
.long("no-gitignore")
|
||||
.help("Include results that are specified in .gitignore"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("omit filenames")
|
||||
.short("h")
|
||||
.help("Omit file names in results"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("only match")
|
||||
.short("o")
|
||||
.help("Only print matched text")
|
||||
)
|
||||
.get_matches();
|
||||
|
||||
Config {
|
||||
@@ -43,6 +55,8 @@ impl Config {
|
||||
ignore_case: matches.is_present("ignore case"),
|
||||
path: String::from(matches.value_of("path").unwrap()),
|
||||
use_gitignore: !matches.is_present("gitignore"),
|
||||
omit_filenames: matches.is_present("omit filenames"),
|
||||
match_only: matches.is_present("only match"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,15 +43,21 @@ impl<'a> Printer for SimplePrinter<'a> {
|
||||
|
||||
impl<'a> SimplePrinter<'a> {
|
||||
fn print_file_name(&self) {
|
||||
println!("{}:", self.file_match.file_name);
|
||||
if !self.config.omit_filenames {
|
||||
println!("{}:", self.file_match.file_name);
|
||||
}
|
||||
}
|
||||
|
||||
fn print_linenumber(&self, mat: &Match) {
|
||||
print!("{}: ", mat.line_number);
|
||||
if !self.config.omit_filenames {
|
||||
print!("{}: ", mat.line_number);
|
||||
}
|
||||
}
|
||||
|
||||
fn print_first_part_of_line(&self, mat: &Match, current_position: usize, match_start: usize) {
|
||||
print!("{}", mat.text.get(current_position..match_start).unwrap());
|
||||
if !self.config.match_only {
|
||||
print!("{}", mat.text.get(current_position..match_start).unwrap());
|
||||
}
|
||||
}
|
||||
|
||||
fn print_match(&self, mat: &Match, index: &MatchIndex) {
|
||||
@@ -59,7 +65,11 @@ impl<'a> SimplePrinter<'a> {
|
||||
}
|
||||
|
||||
fn print_end_of_line(&self, mat: &Match, index: &MatchIndex) {
|
||||
println!("{}", mat.text.get(index.end..mat.text.len()).unwrap());
|
||||
if !self.config.match_only {
|
||||
println!("{}", mat.text.get(index.end..mat.text.len()).unwrap());
|
||||
} else {
|
||||
println!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user