|
1 | 1 | use crate::error::*;
|
2 | 2 | use colored::Color;
|
3 |
| -use regex::Regex; |
4 | 3 | use serde::Serialize;
|
5 | 4 | use std::collections::HashMap;
|
6 | 5 | use std::env;
|
@@ -339,31 +338,12 @@ impl Language {
|
339 | 338 | }
|
340 | 339 |
|
341 | 340 | fn get_statistics(dir: &str, ignored_directories: &[String]) -> tokei::Languages {
|
342 |
| - use tokei::Config; |
343 |
| - |
344 | 341 | let mut languages = tokei::Languages::new();
|
345 | 342 | let required_languages = get_all_language_types();
|
346 |
| - let tokei_config = Config { types: Some(required_languages), ..Config::default() }; |
347 |
| - |
348 |
| - if !ignored_directories.is_empty() { |
349 |
| - let re = Regex::new(r"((.*)+/)+(.*)").unwrap(); |
350 |
| - let mut v = Vec::with_capacity(ignored_directories.len()); |
351 |
| - for ignored in ignored_directories { |
352 |
| - if re.is_match(&ignored) { |
353 |
| - let p = if ignored.starts_with('/') { "**" } else { "**/" }; |
354 |
| - v.push(format!("{}{}", p, ignored)); |
355 |
| - } else { |
356 |
| - v.push(String::from(ignored)); |
357 |
| - } |
358 |
| - } |
359 |
| - let ignored_directories_for_ab: Vec<&str> = v.iter().map(|x| &**x).collect(); |
360 |
| - languages.get_statistics(&[&dir], &ignored_directories_for_ab, &tokei_config); |
361 |
| - } else { |
362 |
| - let ignored_directories_ref: Vec<&str> = |
363 |
| - ignored_directories.iter().map(|s| &**s).collect(); |
364 |
| - languages.get_statistics(&[&dir], &ignored_directories_ref, &tokei_config); |
365 |
| - } |
366 |
| - |
| 343 | + let tokei_config = |
| 344 | + tokei::Config { types: Some(required_languages), ..tokei::Config::default() }; |
| 345 | + let ignored: Vec<&str> = ignored_directories.iter().map(AsRef::as_ref).collect(); |
| 346 | + languages.get_statistics(&[&dir], &ignored, &tokei_config); |
367 | 347 | languages
|
368 | 348 | }
|
369 | 349 | }
|
0 commit comments