Added .markdown, reduced runtime borrows, fixed 25

This commit is contained in:
Aaronepower 2016-03-29 14:38:58 +01:00
parent c06cadd4d4
commit 2a97d41c20
3 changed files with 33 additions and 22 deletions

2
Cargo.lock generated
View file

@ -1,6 +1,6 @@
[root] [root]
name = "tokei" name = "tokei"
version = "1.4.1" version = "1.5.1"
dependencies = [ dependencies = [
"clap 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"glob 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "glob 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",

View file

@ -3,7 +3,7 @@
# found in the LICENSE file. # found in the LICENSE file.
[package] [package]
name = "tokei" name = "tokei"
version = "1.5.0" version = "1.5.1"
authors = ["Aaronepower <theaaronepower@gmail.com>"] authors = ["Aaronepower <theaaronepower@gmail.com>"]
repository = "https://github.com/Aaronepower/tokei.git" repository = "https://github.com/Aaronepower/tokei.git"
homepage = "https://aaronepower.github.io/tokei/" homepage = "https://aaronepower.github.io/tokei/"

View file

@ -155,6 +155,7 @@ fn main() {
"less" => &less, "less" => &less,
"m" => &objective_c, "m" => &objective_c,
"md" => &markdown, "md" => &markdown,
"markdown" => &markdown,
"ml" => &ocaml, "ml" => &ocaml,
"mli" => &ocaml, "mli" => &ocaml,
"mm" => &objective_cpp, "mm" => &objective_cpp,
@ -232,72 +233,84 @@ fn main() {
let mut total = Language::new_raw("Total"); let mut total = Language::new_raw("Total");
for language in languages.values() { for language in languages.values() {
let mut language = language.borrow_mut();
if language.borrow().printed { if language.printed {
continue; continue;
} }
let files = language.borrow().files.clone(); let is_blank_lang = if language.line_comment == "" && language.multi_line == "" {
true
} else {
false
};
let files = language.files.clone();
for file in files { for file in files {
let mut contents = String::new(); let mut contents = String::new();
let is_fortran = language.borrow().name.contains("FORTRAN"); let is_fortran = language.name.contains("FORTRAN");
let _ = unwrap_rs_cont!(unwrap_rs_cont!(File::open(file)) let _ = unwrap_rs_cont!(unwrap_rs_cont!(File::open(file))
.read_to_string(&mut contents)); .read_to_string(&mut contents));
let mut is_in_comments = false; let mut is_in_comments = false;
let lines = contents.lines(); let lines = contents.lines();
if is_blank_lang {
language.code += lines.count();
continue;
}
'line: for line in lines { 'line: for line in lines {
let line = if is_fortran { let line = if is_fortran {
line line
} else { } else {
line.trim() line.trim()
}; };
language.borrow_mut().lines += 1; language.lines += 1;
if line.trim().is_empty() { if line.trim().is_empty() {
language.borrow_mut().blanks += 1; language.blanks += 1;
continue; continue;
} }
if !language.borrow().multi_line.is_empty() { if !language.multi_line.is_empty() {
let multi_line = language.borrow().multi_line; let multi_line = language.multi_line;
let multi_line_end = language.borrow().multi_line_end; let multi_line_end = language.multi_line_end;
if line.starts_with(multi_line) { if line.starts_with(multi_line) {
is_in_comments = true; is_in_comments = true;
} else if contains_comments(line, multi_line, multi_line_end) { } else if contains_comments(line, multi_line, multi_line_end) {
language.borrow_mut().code += 1; language.code += 1;
is_in_comments = true; is_in_comments = true;
} }
} }
if is_in_comments { if is_in_comments {
if line.contains(language.borrow().multi_line_end) { if line.contains(language.multi_line_end) {
is_in_comments = false; is_in_comments = false;
} }
language.borrow_mut().comments += 1; language.comments += 1;
continue; continue;
} }
let single_comments = language.borrow().line_comment.split(','); let single_comments = language.line_comment.split(',');
for single in single_comments { for single in single_comments {
if line.starts_with(single) { if line.starts_with(single) {
language.borrow_mut().comments += 1; language.comments += 1;
continue 'line; continue 'line;
} }
} }
language.borrow_mut().code += 1; language.code += 1;
} }
} }
if !language.borrow().is_empty() { if !language.is_empty() {
language.borrow_mut().printed = true; language.printed = true;
if let None = sort { if let None = sort {
println!("{}", *language.borrow()); println!("{}", *language);
if matches.is_present(FILES) { if matches.is_present(FILES) {
println!("{}", ROW); println!("{}", ROW);
for file in &language.borrow().files { for file in &language.files {
println!("{}", unwrap_opt_cont!(file.to_str())); println!("{}", unwrap_opt_cont!(file.to_str()));
} }
println!("{}", ROW); println!("{}", ROW);
@ -305,8 +318,6 @@ fn main() {
} }
} }
let language = language.borrow();
total.total += language.files.len(); total.total += language.files.len();
total.lines += language.lines; total.lines += language.lines;
total.comments += language.comments; total.comments += language.comments;