mirror of
https://github.com/XAMPPRocky/tokei
synced 2024-10-02 14:03:31 +00:00
Add support for lean, and fixed single comment regression (#70)
* Add Lean * Handle single-line comments inside multi-line ones.
This commit is contained in:
parent
5ced28ab86
commit
9faa8d4210
|
@ -97,6 +97,8 @@ pub enum LanguageType {
|
|||
Jsx,
|
||||
/// Kotlin
|
||||
Kotlin,
|
||||
/// Lean
|
||||
Lean,
|
||||
/// Less
|
||||
Less,
|
||||
/// LinkerScript
|
||||
|
@ -236,6 +238,7 @@ impl LanguageType {
|
|||
Jsx => "JSX",
|
||||
Julia => "Julia",
|
||||
Kotlin => "Kotlin",
|
||||
Lean => "Lean",
|
||||
Less => "LESS",
|
||||
LinkerScript => "LD Script",
|
||||
Lisp => "LISP",
|
||||
|
@ -335,6 +338,7 @@ impl LanguageType {
|
|||
"jsx" => Some(Jsx),
|
||||
"kt" | "kts" => Some(Kotlin),
|
||||
"lds" => Some(LinkerScript),
|
||||
"lean" | "hlean" => Some(Lean),
|
||||
"less" => Some(Less),
|
||||
"lua" => Some(Lua),
|
||||
"m" => Some(ObjectiveC),
|
||||
|
@ -439,6 +443,7 @@ impl<'a> From<&'a str> for LanguageType {
|
|||
"Json" => Json,
|
||||
"Jsx" => Jsx,
|
||||
"Kotlin" => Kotlin,
|
||||
"Lean" => Lean,
|
||||
"Less" => Less,
|
||||
"LinkerScript" => LinkerScript,
|
||||
"Lisp" => Lisp,
|
||||
|
|
|
@ -321,6 +321,7 @@ impl Languages {
|
|||
.set_quotes(vec![("\"", "\""), ("\"\"\"", "\"\"\"")]),
|
||||
Kotlin => Language::new_c().nested()
|
||||
.set_quotes(vec![("\"", "\""), ("\"\"\"", "\"\"\"")]),
|
||||
Lean => Language::new(vec!["--"], vec![("/-", "-/")]).nested(),
|
||||
Less => Language::new_c(),
|
||||
LinkerScript => Language::new_c(),
|
||||
Lisp => Language::new(vec![";"], vec![("#|", "|#")]).nested(),
|
||||
|
|
|
@ -66,9 +66,11 @@ pub fn handle_multi_line(line: &str,
|
|||
}
|
||||
|
||||
|
||||
for comment in &language.line_comment {
|
||||
if window.starts_with(comment) {
|
||||
break 'window;
|
||||
if stack.is_empty() {
|
||||
for comment in &language.line_comment {
|
||||
if window.starts_with(comment) {
|
||||
break 'window;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -117,6 +119,15 @@ mod tests {
|
|||
assert_eq!(stack.len(), 0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn single_comment_in_multi() {
|
||||
let mut stack = vec![];
|
||||
let mut quote = None;
|
||||
let language = Language::new_c();
|
||||
handle_multi_line("Hello /* // */ world", &language, &mut stack, &mut quote);
|
||||
assert_eq!(stack.len(), 0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn comment_start() {
|
||||
let mut stack = vec![];
|
||||
|
|
Loading…
Reference in a new issue