mirror of
https://github.com/sharkdp/bat.git
synced 2024-11-25 09:13:39 +01:00
Add *_with_name methods
This commit is contained in:
parent
53a973e9dd
commit
261a7ea154
@ -27,7 +27,9 @@ fn main() {
|
|||||||
PrettyPrinter::new()
|
PrettyPrinter::new()
|
||||||
.language("yaml")
|
.language("yaml")
|
||||||
.line_numbers(true)
|
.line_numbers(true)
|
||||||
.input_from_bytes(&bytes)
|
.grid(true)
|
||||||
|
.header(true)
|
||||||
|
.input_from_bytes_with_name(&bytes, "person.yaml")
|
||||||
.print()
|
.print()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
@ -311,8 +311,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn syntax_for_stdin_with_content(&self, file_name: &str, content: &[u8]) -> String {
|
fn syntax_for_stdin_with_content(&self, file_name: &str, content: &[u8]) -> String {
|
||||||
let mut input = Input::stdin();
|
let input = Input::stdin().with_name(Some(OsStr::new(file_name)));
|
||||||
input.set_provided_name(Some(OsStr::new(file_name)));
|
|
||||||
let mut opened_input = input.open(content).unwrap();
|
let mut opened_input = input.open(content).unwrap();
|
||||||
|
|
||||||
let syntax = self
|
let syntax = self
|
||||||
|
@ -246,8 +246,7 @@ impl App {
|
|||||||
let files: Option<Vec<&OsStr>> = self.matches.values_of_os("FILE").map(|vs| vs.collect());
|
let files: Option<Vec<&OsStr>> = self.matches.values_of_os("FILE").map(|vs| vs.collect());
|
||||||
|
|
||||||
if files.is_none() {
|
if files.is_none() {
|
||||||
let mut input = Input::stdin();
|
let input = Input::stdin().with_name(filenames_or_none.nth(0).unwrap_or(None));
|
||||||
input.set_provided_name(filenames_or_none.nth(0).unwrap_or(None));
|
|
||||||
return Ok(vec![input]);
|
return Ok(vec![input]);
|
||||||
}
|
}
|
||||||
let files_or_none: Box<dyn Iterator<Item = _>> = match files {
|
let files_or_none: Box<dyn Iterator<Item = _>> = match files {
|
||||||
@ -259,13 +258,9 @@ impl App {
|
|||||||
for (filepath, provided_name) in files_or_none.zip(filenames_or_none) {
|
for (filepath, provided_name) in files_or_none.zip(filenames_or_none) {
|
||||||
if let Some(filepath) = filepath {
|
if let Some(filepath) = filepath {
|
||||||
if filepath.to_str().unwrap_or_default() == "-" {
|
if filepath.to_str().unwrap_or_default() == "-" {
|
||||||
let mut input = Input::stdin();
|
file_input.push(Input::stdin().with_name(provided_name));
|
||||||
input.set_provided_name(provided_name);
|
|
||||||
file_input.push(input);
|
|
||||||
} else {
|
} else {
|
||||||
let mut input = Input::ordinary_file(filepath);
|
file_input.push(Input::ordinary_file(filepath).with_name(provided_name));
|
||||||
input.set_provided_name(provided_name);
|
|
||||||
file_input.push(input);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,8 +82,9 @@ impl<'a> Input<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_provided_name(&mut self, provided_name: Option<&OsStr>) {
|
pub fn with_name(mut self, provided_name: Option<&OsStr>) -> Self {
|
||||||
self.metadata.user_provided_name = provided_name.map(|n| n.to_owned());
|
self.metadata.user_provided_name = provided_name.map(|n| n.to_owned());
|
||||||
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn open<R: BufRead + 'a>(self, stdin: R) -> Result<OpenedInput<'a>> {
|
pub(crate) fn open<R: BufRead + 'a>(self, stdin: R) -> Result<OpenedInput<'a>> {
|
||||||
|
@ -79,17 +79,44 @@ impl<'a> PrettyPrinter<'a> {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Use a string as an input
|
/// Add STDIN as an input (with customized name)
|
||||||
|
pub fn input_stdin_with_name(&mut self, name: impl AsRef<OsStr>) -> &mut Self {
|
||||||
|
self.inputs
|
||||||
|
.push(Input::stdin().with_name(Some(name.as_ref())));
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Add a byte string as an input
|
||||||
pub fn input_from_bytes(&mut self, content: &'a [u8]) -> &mut Self {
|
pub fn input_from_bytes(&mut self, content: &'a [u8]) -> &mut Self {
|
||||||
self.input_from_reader(content)
|
self.input_from_reader(content)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Add a byte string as an input (with customized name)
|
||||||
|
pub fn input_from_bytes_with_name(
|
||||||
|
&mut self,
|
||||||
|
content: &'a [u8],
|
||||||
|
name: impl AsRef<OsStr>,
|
||||||
|
) -> &mut Self {
|
||||||
|
self.input_from_reader_with_name(content, name)
|
||||||
|
}
|
||||||
|
|
||||||
/// Add a custom reader as an input
|
/// Add a custom reader as an input
|
||||||
pub fn input_from_reader<R: Read + 'a>(&mut self, reader: R) -> &mut Self {
|
pub fn input_from_reader<R: Read + 'a>(&mut self, reader: R) -> &mut Self {
|
||||||
self.inputs.push(Input::from_reader(Box::new(reader)));
|
self.inputs.push(Input::from_reader(Box::new(reader)));
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Add a custom reader as an input (with customized name)
|
||||||
|
pub fn input_from_reader_with_name<R: Read + 'a>(
|
||||||
|
&mut self,
|
||||||
|
reader: R,
|
||||||
|
name: impl AsRef<OsStr>,
|
||||||
|
) -> &mut Self {
|
||||||
|
self.inputs
|
||||||
|
.push(Input::from_reader(Box::new(reader)).with_name(Some(name.as_ref())));
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
/// Specify the syntax file which should be used (default: auto-detect)
|
/// Specify the syntax file which should be used (default: auto-detect)
|
||||||
pub fn language(&mut self, language: &'a str) -> &mut Self {
|
pub fn language(&mut self, language: &'a str) -> &mut Self {
|
||||||
self.config.language = Some(language);
|
self.config.language = Some(language);
|
||||||
|
Loading…
Reference in New Issue
Block a user