Added non-interactive mode for --list-languages

This makes scripting it a lot easier and less hacky.
This commit is contained in:
Ethan P authored and David Peter committed 2019-05-14 22:50:42 +02:00
1 parent 27e0ca98d9
commit 493a4e719e
1 file changed
+9 -3
+9 -3
View File
@@ -108,6 +108,14 @@ pub fn list_languages(config: &Config) -> Result<()> {
.collect::<Vec<_>>(); .collect::<Vec<_>>();
languages.sort_by_key(|lang| lang.name.to_uppercase()); languages.sort_by_key(|lang| lang.name.to_uppercase());
let stdout = io::stdout();
let mut stdout = stdout.lock();
if config.loop_through {
for lang in languages {
write!(stdout, "{}:{}\n", lang.name, lang.file_extensions.join(","));
}
} else {
let longest = languages let longest = languages
.iter() .iter()
.map(|syntax| syntax.name.len()) .map(|syntax| syntax.name.len())
@@ -119,9 +127,6 @@ pub fn list_languages(config: &Config) -> Result<()> {
// Line-wrapping for the possible file extension overflow. // Line-wrapping for the possible file extension overflow.
let desired_width = config.term_width - longest - separator.len(); let desired_width = config.term_width - longest - separator.len();
let stdout = io::stdout();
let mut stdout = stdout.lock();
let style = if config.colored_output { let style = if config.colored_output {
Green.normal() Green.normal()
} else { } else {
@@ -151,6 +156,7 @@ pub fn list_languages(config: &Config) -> Result<()> {
} }
writeln!(stdout)?; writeln!(stdout)?;
} }
}
Ok(()) Ok(())
} }