Skip to content

Commit ba5cf04

Browse files
committed
fix description for codeblock
1 parent 6b6f41c commit ba5cf04

2 files changed

Lines changed: 86 additions & 10 deletions

File tree

crates/emmylua_parser/src/grammar/doc/test.rs

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2434,4 +2434,86 @@ Syntax(Chunk)@0..135
24342434

24352435
assert_ast_eq!(code, result);
24362436
}
2437+
2438+
// can not pass the test, I donot know why
2439+
// #[test]
2440+
// fn test_comment_2() {
2441+
// let code = r#"
2442+
// --- Sum two numbers
2443+
// --- Example:
2444+
// --- ```lua
2445+
// --- -- `c` is equal to 5
2446+
// --- local c = sum(2, 3)
2447+
// --- ```
2448+
// local function sum(a, b) return a + b end
2449+
// "#;
2450+
// let result = r##"
2451+
// Syntax(Chunk)@0..208
2452+
// Syntax(Block)@0..208
2453+
// Token(TkEndOfLine)@0..1 "\n"
2454+
// Token(TkWhitespace)@1..9 " "
2455+
// Syntax(Comment)@9..149
2456+
// Token(TkNormalStart)@9..13 "--- "
2457+
// Syntax(DocDescription)@13..149
2458+
// Token(TkDocDetail)@13..28 "Sum two numbers"
2459+
// Token(TkEndOfLine)@28..29 "\n"
2460+
// Token(TkWhitespace)@29..37 " "
2461+
// Token(TkNormalStart)@37..41 "--- "
2462+
// Token(TkDocDetail)@41..49 "Example:"
2463+
// Token(TkEndOfLine)@49..50 "\n"
2464+
// Token(TkWhitespace)@50..58 " "
2465+
// Token(TkNormalStart)@58..62 "--- "
2466+
// Token(TkDocDetail)@62..68 "```lua"
2467+
// Token(TkEndOfLine)@68..69 "\n"
2468+
// Token(TkWhitespace)@69..77 " "
2469+
// Token(TkNormalStart)@77..81 "--- "
2470+
// Token(TkDocDetail)@81..101 "-- `c` is equal to 5"
2471+
// Token(TkEndOfLine)@101..102 "\n"
2472+
// Token(TkWhitespace)@102..110 " "
2473+
// Token(TkNormalStart)@110..114 "--- "
2474+
// Token(TkDocDetail)@114..133 "local c = sum(2, 3)"
2475+
// Token(TkEndOfLine)@133..134 "\n"
2476+
// Token(TkWhitespace)@134..142 " "
2477+
// Token(TkNormalStart)@142..146 "--- "
2478+
// Token(TkDocDetail)@146..149 "```"
2479+
// Token(TkEndOfLine)@149..150 "\n"
2480+
// Token(TkWhitespace)@150..158 " "
2481+
// Syntax(LocalFuncStat)@158..199
2482+
// Token(TkLocal)@158..163 "local"
2483+
// Token(TkWhitespace)@163..164 " "
2484+
// Token(TkFunction)@164..172 "function"
2485+
// Token(TkWhitespace)@172..173 " "
2486+
// Syntax(LocalName)@173..176
2487+
// Token(TkName)@173..176 "sum"
2488+
// Syntax(ClosureExpr)@176..199
2489+
// Syntax(ParamList)@176..182
2490+
// Token(TkLeftParen)@176..177 "("
2491+
// Syntax(ParamName)@177..178
2492+
// Token(TkName)@177..178 "a"
2493+
// Token(TkComma)@178..179 ","
2494+
// Token(TkWhitespace)@179..180 " "
2495+
// Syntax(ParamName)@180..181
2496+
// Token(TkName)@180..181 "b"
2497+
// Token(TkRightParen)@181..182 ")"
2498+
// Syntax(Block)@182..196
2499+
// Token(TkWhitespace)@182..183 " "
2500+
// Syntax(ReturnStat)@183..195
2501+
// Token(TkReturn)@183..189 "return"
2502+
// Token(TkWhitespace)@189..190 " "
2503+
// Syntax(BinaryExpr)@190..195
2504+
// Syntax(NameExpr)@190..191
2505+
// Token(TkName)@190..191 "a"
2506+
// Token(TkWhitespace)@191..192 " "
2507+
// Token(TkPlus)@192..193 "+"
2508+
// Token(TkWhitespace)@193..194 " "
2509+
// Syntax(NameExpr)@194..195
2510+
// Token(TkName)@194..195 "b"
2511+
// Token(TkWhitespace)@195..196 " "
2512+
// Token(TkEnd)@196..199 "end"
2513+
// Token(TkEndOfLine)@199..200 "\n"
2514+
// Token(TkWhitespace)@200..208 " "
2515+
// "##;
2516+
2517+
// assert_ast_eq!(code, result);
2518+
// }
24372519
}

crates/emmylua_parser/src/lexer/lua_doc_lexer.rs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ impl LuaDocLexer<'_> {
5050
self.origin_token_kind = kind;
5151
}
5252

53-
#[allow(unused)]
5453
pub fn lex(&mut self) -> LuaTokenKind {
5554
let reader = self.reader.as_mut().unwrap();
5655
reader.reset_buff();
@@ -71,7 +70,6 @@ impl LuaDocLexer<'_> {
7170
LuaDocLexerState::Version => self.lex_version(),
7271
LuaDocLexerState::Source => self.lex_source(),
7372
LuaDocLexerState::NormalDescription => self.lex_normal_description(),
74-
_ => LuaTokenKind::None,
7573
}
7674
}
7775

@@ -82,7 +80,7 @@ impl LuaDocLexer<'_> {
8280
fn lex_init(&mut self) -> LuaTokenKind {
8381
let reader = self.reader.as_mut().unwrap();
8482
match reader.current_char() {
85-
'-' => {
83+
'-' if reader.is_start_of_line() => {
8684
let count = reader.eat_when('-');
8785
match count {
8886
2 => {
@@ -311,13 +309,9 @@ impl LuaDocLexer<'_> {
311309
reader.eat_while(is_doc_whitespace);
312310
LuaTokenKind::TkWhitespace
313311
}
314-
'-' => {
315-
if !reader.is_start_of_line() {
316-
reader.eat_while(|_| true);
317-
return LuaTokenKind::TkDocDetail;
318-
}
312+
'-' if reader.is_start_of_line() => {
319313
match reader.current_char() {
320-
'-' => {
314+
'-' if reader.is_start_of_line() => {
321315
let count = reader.eat_when('-');
322316
match count {
323317
2 => {
@@ -508,7 +502,7 @@ impl LuaDocLexer<'_> {
508502
}
509503
};
510504
}
511-
'-' => {
505+
'-' if reader.is_start_of_line() => {
512506
let count = reader.eat_when('-');
513507
match count {
514508
2 => {

0 commit comments

Comments
 (0)