mirror of
https://github.com/XAMPPRocky/tokei
synced 2024-10-05 23:39:28 +00:00
Added .markdown, reduced runtime borrows, fixed 25
This commit is contained in:
parent
c06cadd4d4
commit
2a97d41c20
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -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)",
|
||||||
|
|
|
@ -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/"
|
||||||
|
|
51
src/main.rs
51
src/main.rs
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue