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:
Gabriel Ebner 2016-09-29 18:42:31 -04:00 committed by Aaron Power
parent 5ced28ab86
commit 9faa8d4210
4 changed files with 21 additions and 3 deletions

View file

@ -204,6 +204,7 @@ Julia
JSON
JSX
Kotlin
Lean
LESS
LD Script
LISP

View file

@ -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,

View file

@ -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(),

View file

@ -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![];