mirror of
https://github.com/joshuadavidthomas/django-language-server.git
synced 2025-09-10 12:26:50 +00:00
revert changes to lexer
This commit is contained in:
parent
725a603483
commit
bc54814229
17 changed files with 439 additions and 468 deletions
|
@ -45,7 +45,7 @@ impl Lexer {
|
||||||
self.consume_n(2)?; // {{
|
self.consume_n(2)?; // {{
|
||||||
let content = self.consume_until("}}")?;
|
let content = self.consume_until("}}")?;
|
||||||
self.consume_n(2)?; // }}
|
self.consume_n(2)?; // }}
|
||||||
TokenType::DjangoVariable(content.trim().to_string())
|
TokenType::DjangoVariable(content)
|
||||||
}
|
}
|
||||||
'#' => {
|
'#' => {
|
||||||
self.consume_n(2)?; // {#
|
self.consume_n(2)?; // {#
|
||||||
|
@ -54,42 +54,106 @@ impl Lexer {
|
||||||
TokenType::Comment(content, "{#".to_string(), Some("#}".to_string()))
|
TokenType::Comment(content, "{#".to_string(), Some("#}".to_string()))
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
self.consume()?;
|
self.consume()?; // {
|
||||||
TokenType::Text("{".to_string())
|
TokenType::Text(String::from("{"))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'\n' => {
|
|
||||||
self.consume()?;
|
'<' => match self.peek_next()? {
|
||||||
let token = TokenType::Newline;
|
'/' => {
|
||||||
self.line += 1;
|
self.consume_n(2)?; // </
|
||||||
token
|
let tag = self.consume_until(">")?;
|
||||||
|
self.consume()?; // >
|
||||||
|
TokenType::HtmlTagClose(tag)
|
||||||
}
|
}
|
||||||
' ' | '\t' | '\r' => {
|
'!' if self.matches("<!--")? => {
|
||||||
let mut count = 1;
|
self.consume_n(4)?; // <!--
|
||||||
|
let content = self.consume_until("-->")?;
|
||||||
|
self.consume_n(3)?; // -->
|
||||||
|
TokenType::Comment(content, "<!--".to_string(), Some("-->".to_string()))
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
self.consume()?; // consume <
|
||||||
|
let tag = self.consume_until(">")?;
|
||||||
|
self.consume()?; // consume >
|
||||||
|
if tag.starts_with("script") {
|
||||||
|
TokenType::ScriptTagOpen(tag)
|
||||||
|
} else if tag.starts_with("style") {
|
||||||
|
TokenType::StyleTagOpen(tag)
|
||||||
|
} else if tag.ends_with("/") {
|
||||||
|
TokenType::HtmlTagVoid(tag.trim_end_matches("/").to_string())
|
||||||
|
} else {
|
||||||
|
TokenType::HtmlTagOpen(tag)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
'/' => match self.peek_next()? {
|
||||||
|
'/' => {
|
||||||
|
self.consume_n(2)?; // //
|
||||||
|
let content = self.consume_until("\n")?;
|
||||||
|
TokenType::Comment(content, "//".to_string(), None)
|
||||||
|
}
|
||||||
|
'*' => {
|
||||||
|
self.consume_n(2)?; // /*
|
||||||
|
let content = self.consume_until("*/")?;
|
||||||
|
self.consume_n(2)?; // */
|
||||||
|
TokenType::Comment(content, "/*".to_string(), Some("*/".to_string()))
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
self.consume()?;
|
self.consume()?;
|
||||||
while let Ok(c) = self.peek() {
|
TokenType::Text("/".to_string())
|
||||||
if c != ' ' && c != '\t' && c != '\r' {
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
c if c.is_whitespace() => {
|
||||||
|
if c == '\n' || c == '\r' {
|
||||||
|
self.consume()?; // \r or \n
|
||||||
|
if c == '\r' && self.peek()? == '\n' {
|
||||||
|
self.consume()?; // \n of \r\n
|
||||||
|
}
|
||||||
|
TokenType::Newline
|
||||||
|
} else {
|
||||||
|
self.consume()?; // Consume the first whitespace
|
||||||
|
while !self.is_at_end() && self.peek()?.is_whitespace() {
|
||||||
|
if self.peek()? == '\n' || self.peek()? == '\r' {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
self.consume()?;
|
self.consume()?;
|
||||||
count += 1;
|
|
||||||
}
|
}
|
||||||
TokenType::Whitespace(count)
|
let whitespace_count = self.current - self.start;
|
||||||
|
TokenType::Whitespace(whitespace_count)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_ => {
|
_ => {
|
||||||
let mut text = String::new();
|
let mut text = String::new();
|
||||||
while !self.is_at_end() {
|
while !self.is_at_end() {
|
||||||
let c = self.peek()?;
|
let c = self.peek()?;
|
||||||
if c == '{' || c == '\n' || c == ' ' || c == '\t' || c == '\r' {
|
if c == '{' || c == '<' || c == '\n' {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
text.push(self.consume()?);
|
text.push(c);
|
||||||
|
self.consume()?;
|
||||||
}
|
}
|
||||||
TokenType::Text(text)
|
TokenType::Text(text)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(Token::new(token_type, self.line, Some(self.start)))
|
let token = Token::new(token_type, self.line, Some(self.start));
|
||||||
|
|
||||||
|
match self.peek_previous()? {
|
||||||
|
'\n' => self.line += 1,
|
||||||
|
'\r' => {
|
||||||
|
self.line += 1;
|
||||||
|
if self.peek()? == '\n' {
|
||||||
|
self.current += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(token)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn peek(&self) -> Result<char, LexerError> {
|
fn peek(&self) -> Result<char, LexerError> {
|
||||||
|
@ -246,7 +310,15 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn test_tokenize_comments() {
|
fn test_tokenize_comments() {
|
||||||
let source = r#"<!-- HTML comment -->
|
let source = r#"<!-- HTML comment -->
|
||||||
{# Django comment #}"#;
|
{# Django comment #}
|
||||||
|
<script>
|
||||||
|
// JS single line comment
|
||||||
|
/* JS multi-line
|
||||||
|
comment */
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
/* CSS comment */
|
||||||
|
</style>"#;
|
||||||
let mut lexer = Lexer::new(source);
|
let mut lexer = Lexer::new(source);
|
||||||
let tokens = lexer.tokenize().unwrap();
|
let tokens = lexer.tokenize().unwrap();
|
||||||
insta::assert_yaml_snapshot!(tokens);
|
insta::assert_yaml_snapshot!(tokens);
|
||||||
|
@ -285,7 +357,7 @@ mod tests {
|
||||||
assert!(Lexer::new("{{ user.name").tokenize().is_err()); // No closing }}
|
assert!(Lexer::new("{{ user.name").tokenize().is_err()); // No closing }}
|
||||||
assert!(Lexer::new("{% if").tokenize().is_err()); // No closing %}
|
assert!(Lexer::new("{% if").tokenize().is_err()); // No closing %}
|
||||||
assert!(Lexer::new("{#").tokenize().is_err()); // No closing #}
|
assert!(Lexer::new("{#").tokenize().is_err()); // No closing #}
|
||||||
assert!(Lexer::new("<div").tokenize().is_ok()); // No closing >, but HTML is treated as text
|
assert!(Lexer::new("<div").tokenize().is_err()); // No closing >
|
||||||
|
|
||||||
// Invalid characters or syntax within tokens
|
// Invalid characters or syntax within tokens
|
||||||
assert!(Lexer::new("{{}}").tokenize().is_ok()); // Empty but valid
|
assert!(Lexer::new("{{}}").tokenize().is_ok()); // Empty but valid
|
||||||
|
|
|
@ -3,35 +3,14 @@ source: crates/djls-template-ast/src/lexer.rs
|
||||||
expression: tokens
|
expression: tokens
|
||||||
---
|
---
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<!--"
|
Comment:
|
||||||
|
- HTML comment
|
||||||
|
- "<!--"
|
||||||
|
- "-->"
|
||||||
line: 1
|
line: 1
|
||||||
start: 0
|
start: 0
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 1
|
|
||||||
start: 4
|
|
||||||
- token_type:
|
|
||||||
Text: HTML
|
|
||||||
line: 1
|
|
||||||
start: 5
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 1
|
|
||||||
start: 9
|
|
||||||
- token_type:
|
|
||||||
Text: comment
|
|
||||||
line: 1
|
|
||||||
start: 10
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 1
|
|
||||||
start: 17
|
|
||||||
- token_type:
|
|
||||||
Text: "-->"
|
|
||||||
line: 1
|
|
||||||
start: 18
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 2
|
line: 1
|
||||||
start: 21
|
start: 21
|
||||||
- token_type:
|
- token_type:
|
||||||
Comment:
|
Comment:
|
||||||
|
@ -40,6 +19,76 @@ expression: tokens
|
||||||
- "#}"
|
- "#}"
|
||||||
line: 2
|
line: 2
|
||||||
start: 22
|
start: 22
|
||||||
- token_type: Eof
|
- token_type: Newline
|
||||||
line: 2
|
line: 2
|
||||||
|
start: 42
|
||||||
|
- token_type:
|
||||||
|
ScriptTagOpen: script
|
||||||
|
line: 3
|
||||||
|
start: 43
|
||||||
|
- token_type: Newline
|
||||||
|
line: 3
|
||||||
|
start: 51
|
||||||
|
- token_type:
|
||||||
|
Whitespace: 4
|
||||||
|
line: 4
|
||||||
|
start: 52
|
||||||
|
- token_type:
|
||||||
|
Comment:
|
||||||
|
- JS single line comment
|
||||||
|
- //
|
||||||
|
- ~
|
||||||
|
line: 4
|
||||||
|
start: 56
|
||||||
|
- token_type: Newline
|
||||||
|
line: 4
|
||||||
|
start: 81
|
||||||
|
- token_type:
|
||||||
|
Whitespace: 4
|
||||||
|
line: 5
|
||||||
|
start: 82
|
||||||
|
- token_type:
|
||||||
|
Comment:
|
||||||
|
- "JS multi-line\n comment"
|
||||||
|
- /*
|
||||||
|
- "*/"
|
||||||
|
line: 5
|
||||||
|
start: 86
|
||||||
|
- token_type: Newline
|
||||||
|
line: 5
|
||||||
|
start: 120
|
||||||
|
- token_type:
|
||||||
|
HtmlTagClose: script
|
||||||
|
line: 6
|
||||||
|
start: 121
|
||||||
|
- token_type: Newline
|
||||||
|
line: 6
|
||||||
|
start: 130
|
||||||
|
- token_type:
|
||||||
|
StyleTagOpen: style
|
||||||
|
line: 7
|
||||||
|
start: 131
|
||||||
|
- token_type: Newline
|
||||||
|
line: 7
|
||||||
|
start: 138
|
||||||
|
- token_type:
|
||||||
|
Whitespace: 4
|
||||||
|
line: 8
|
||||||
|
start: 139
|
||||||
|
- token_type:
|
||||||
|
Comment:
|
||||||
|
- CSS comment
|
||||||
|
- /*
|
||||||
|
- "*/"
|
||||||
|
line: 8
|
||||||
|
start: 143
|
||||||
|
- token_type: Newline
|
||||||
|
line: 8
|
||||||
|
start: 160
|
||||||
|
- token_type:
|
||||||
|
HtmlTagClose: style
|
||||||
|
line: 9
|
||||||
|
start: 161
|
||||||
|
- token_type: Eof
|
||||||
|
line: 9
|
||||||
start: ~
|
start: ~
|
||||||
|
|
|
@ -3,87 +3,50 @@ source: crates/djls-template-ast/src/lexer.rs
|
||||||
expression: tokens
|
expression: tokens
|
||||||
---
|
---
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<!DOCTYPE"
|
HtmlTagOpen: "!DOCTYPE html"
|
||||||
line: 1
|
line: 1
|
||||||
start: 0
|
start: 0
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 1
|
|
||||||
start: 9
|
|
||||||
- token_type:
|
|
||||||
Text: html>
|
|
||||||
line: 1
|
|
||||||
start: 10
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 2
|
line: 1
|
||||||
start: 15
|
start: 15
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<html>"
|
HtmlTagOpen: html
|
||||||
line: 2
|
line: 2
|
||||||
start: 16
|
start: 16
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 3
|
line: 2
|
||||||
start: 22
|
start: 22
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<head>"
|
HtmlTagOpen: head
|
||||||
line: 3
|
line: 3
|
||||||
start: 23
|
start: 23
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 4
|
line: 3
|
||||||
start: 29
|
start: 29
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 4
|
line: 4
|
||||||
start: 30
|
start: 30
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<style"
|
StyleTagOpen: "style type=\"text/css\""
|
||||||
line: 4
|
line: 4
|
||||||
start: 34
|
start: 34
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 4
|
|
||||||
start: 40
|
|
||||||
- token_type:
|
|
||||||
Text: "type=\"text/css\">"
|
|
||||||
line: 4
|
|
||||||
start: 41
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 5
|
line: 4
|
||||||
start: 57
|
start: 57
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 8
|
Whitespace: 8
|
||||||
line: 5
|
line: 5
|
||||||
start: 58
|
start: 58
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: /*
|
Comment:
|
||||||
|
- Style header
|
||||||
|
- /*
|
||||||
|
- "*/"
|
||||||
line: 5
|
line: 5
|
||||||
start: 66
|
start: 66
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 5
|
|
||||||
start: 68
|
|
||||||
- token_type:
|
|
||||||
Text: Style
|
|
||||||
line: 5
|
|
||||||
start: 69
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 5
|
|
||||||
start: 74
|
|
||||||
- token_type:
|
|
||||||
Text: header
|
|
||||||
line: 5
|
|
||||||
start: 75
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 5
|
|
||||||
start: 81
|
|
||||||
- token_type:
|
|
||||||
Text: "*/"
|
|
||||||
line: 5
|
|
||||||
start: 82
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 6
|
line: 5
|
||||||
start: 84
|
start: 84
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 8
|
Whitespace: 8
|
||||||
|
@ -93,10 +56,6 @@ expression: tokens
|
||||||
Text: ".header "
|
Text: ".header "
|
||||||
line: 6
|
line: 6
|
||||||
start: 93
|
start: 93
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 6
|
|
||||||
start: 100
|
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "{"
|
Text: "{"
|
||||||
line: 6
|
line: 6
|
||||||
|
@ -106,165 +65,87 @@ expression: tokens
|
||||||
line: 6
|
line: 6
|
||||||
start: 102
|
start: 102
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "color:"
|
Text: "color: blue; }"
|
||||||
line: 6
|
line: 6
|
||||||
start: 103
|
start: 103
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 6
|
|
||||||
start: 109
|
|
||||||
- token_type:
|
|
||||||
Text: blue;
|
|
||||||
line: 6
|
|
||||||
start: 110
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 6
|
|
||||||
start: 115
|
|
||||||
- token_type:
|
|
||||||
Text: "}"
|
|
||||||
line: 6
|
|
||||||
start: 116
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 7
|
line: 6
|
||||||
start: 117
|
start: 117
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 7
|
line: 7
|
||||||
start: 118
|
start: 118
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "</style>"
|
HtmlTagClose: style
|
||||||
line: 7
|
line: 7
|
||||||
start: 122
|
start: 122
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 8
|
line: 7
|
||||||
start: 130
|
start: 130
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 8
|
line: 8
|
||||||
start: 131
|
start: 131
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<script"
|
ScriptTagOpen: "script type=\"text/javascript\""
|
||||||
line: 8
|
line: 8
|
||||||
start: 135
|
start: 135
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 8
|
|
||||||
start: 142
|
|
||||||
- token_type:
|
|
||||||
Text: "type=\"text/javascript\">"
|
|
||||||
line: 8
|
|
||||||
start: 143
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 9
|
line: 8
|
||||||
start: 166
|
start: 166
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 8
|
Whitespace: 8
|
||||||
line: 9
|
line: 9
|
||||||
start: 167
|
start: 167
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: //
|
Comment:
|
||||||
|
- Init app
|
||||||
|
- //
|
||||||
|
- ~
|
||||||
line: 9
|
line: 9
|
||||||
start: 175
|
start: 175
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 9
|
|
||||||
start: 177
|
|
||||||
- token_type:
|
|
||||||
Text: Init
|
|
||||||
line: 9
|
|
||||||
start: 178
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 9
|
|
||||||
start: 182
|
|
||||||
- token_type:
|
|
||||||
Text: app
|
|
||||||
line: 9
|
|
||||||
start: 183
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 10
|
line: 9
|
||||||
start: 186
|
start: 186
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 8
|
Whitespace: 8
|
||||||
line: 10
|
line: 10
|
||||||
start: 187
|
start: 187
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: const
|
Text: "const app = "
|
||||||
line: 10
|
line: 10
|
||||||
start: 195
|
start: 195
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 10
|
|
||||||
start: 200
|
|
||||||
- token_type:
|
|
||||||
Text: app
|
|
||||||
line: 10
|
|
||||||
start: 201
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 10
|
|
||||||
start: 204
|
|
||||||
- token_type:
|
|
||||||
Text: "="
|
|
||||||
line: 10
|
|
||||||
start: 205
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 10
|
|
||||||
start: 206
|
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "{"
|
Text: "{"
|
||||||
line: 10
|
line: 10
|
||||||
start: 207
|
start: 207
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 11
|
line: 10
|
||||||
start: 208
|
start: 208
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 12
|
Whitespace: 12
|
||||||
line: 11
|
line: 11
|
||||||
start: 209
|
start: 209
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: /*
|
Comment:
|
||||||
|
- Config
|
||||||
|
- /*
|
||||||
|
- "*/"
|
||||||
line: 11
|
line: 11
|
||||||
start: 221
|
start: 221
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 11
|
|
||||||
start: 223
|
|
||||||
- token_type:
|
|
||||||
Text: Config
|
|
||||||
line: 11
|
|
||||||
start: 224
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 11
|
|
||||||
start: 230
|
|
||||||
- token_type:
|
|
||||||
Text: "*/"
|
|
||||||
line: 11
|
|
||||||
start: 231
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 12
|
line: 11
|
||||||
start: 233
|
start: 233
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 12
|
Whitespace: 12
|
||||||
line: 12
|
line: 12
|
||||||
start: 234
|
start: 234
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "debug:"
|
Text: "debug: true"
|
||||||
line: 12
|
line: 12
|
||||||
start: 246
|
start: 246
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 12
|
|
||||||
start: 252
|
|
||||||
- token_type:
|
|
||||||
Text: "true"
|
|
||||||
line: 12
|
|
||||||
start: 253
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 13
|
line: 12
|
||||||
start: 257
|
start: 257
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 8
|
Whitespace: 8
|
||||||
|
@ -275,110 +156,57 @@ expression: tokens
|
||||||
line: 13
|
line: 13
|
||||||
start: 266
|
start: 266
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 14
|
line: 13
|
||||||
start: 268
|
start: 268
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 14
|
line: 14
|
||||||
start: 269
|
start: 269
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "</script>"
|
HtmlTagClose: script
|
||||||
line: 14
|
line: 14
|
||||||
start: 273
|
start: 273
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 15
|
line: 14
|
||||||
start: 282
|
start: 282
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "</head>"
|
HtmlTagClose: head
|
||||||
line: 15
|
line: 15
|
||||||
start: 283
|
start: 283
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 16
|
line: 15
|
||||||
start: 290
|
start: 290
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<body>"
|
HtmlTagOpen: body
|
||||||
line: 16
|
line: 16
|
||||||
start: 291
|
start: 291
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 17
|
line: 16
|
||||||
start: 297
|
start: 297
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 17
|
line: 17
|
||||||
start: 298
|
start: 298
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<!--"
|
Comment:
|
||||||
|
- Header section
|
||||||
|
- "<!--"
|
||||||
|
- "-->"
|
||||||
line: 17
|
line: 17
|
||||||
start: 302
|
start: 302
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 17
|
|
||||||
start: 306
|
|
||||||
- token_type:
|
|
||||||
Text: Header
|
|
||||||
line: 17
|
|
||||||
start: 307
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 17
|
|
||||||
start: 313
|
|
||||||
- token_type:
|
|
||||||
Text: section
|
|
||||||
line: 17
|
|
||||||
start: 314
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 17
|
|
||||||
start: 321
|
|
||||||
- token_type:
|
|
||||||
Text: "-->"
|
|
||||||
line: 17
|
|
||||||
start: 322
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 18
|
line: 17
|
||||||
start: 325
|
start: 325
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 18
|
line: 18
|
||||||
start: 326
|
start: 326
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<div"
|
HtmlTagOpen: "div class=\"header\" id=\"main\" data-value=\"123\" disabled"
|
||||||
line: 18
|
line: 18
|
||||||
start: 330
|
start: 330
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 18
|
|
||||||
start: 334
|
|
||||||
- token_type:
|
|
||||||
Text: "class=\"header\""
|
|
||||||
line: 18
|
|
||||||
start: 335
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 18
|
|
||||||
start: 349
|
|
||||||
- token_type:
|
|
||||||
Text: "id=\"main\""
|
|
||||||
line: 18
|
|
||||||
start: 350
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 18
|
|
||||||
start: 359
|
|
||||||
- token_type:
|
|
||||||
Text: "data-value=\"123\""
|
|
||||||
line: 18
|
|
||||||
start: 360
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 18
|
|
||||||
start: 376
|
|
||||||
- token_type:
|
|
||||||
Text: disabled>
|
|
||||||
line: 18
|
|
||||||
start: 377
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 19
|
line: 18
|
||||||
start: 386
|
start: 386
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 8
|
Whitespace: 8
|
||||||
|
@ -389,7 +217,7 @@ expression: tokens
|
||||||
line: 19
|
line: 19
|
||||||
start: 395
|
start: 395
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 20
|
line: 19
|
||||||
start: 425
|
start: 425
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 12
|
Whitespace: 12
|
||||||
|
@ -403,30 +231,34 @@ expression: tokens
|
||||||
line: 20
|
line: 20
|
||||||
start: 438
|
start: 438
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 21
|
line: 20
|
||||||
start: 459
|
start: 459
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 12
|
Whitespace: 12
|
||||||
line: 21
|
line: 21
|
||||||
start: 460
|
start: 460
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<h1>Welcome,"
|
HtmlTagOpen: h1
|
||||||
line: 21
|
line: 21
|
||||||
start: 472
|
start: 472
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 1
|
Text: "Welcome, "
|
||||||
line: 21
|
line: 21
|
||||||
start: 484
|
start: 476
|
||||||
- token_type:
|
- token_type:
|
||||||
DjangoVariable: "user.name|default:\"Guest\"|title"
|
DjangoVariable: "user.name|default:\"Guest\"|title"
|
||||||
line: 21
|
line: 21
|
||||||
start: 485
|
start: 485
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "!</h1>"
|
Text: "!"
|
||||||
line: 21
|
line: 21
|
||||||
start: 522
|
start: 522
|
||||||
|
- token_type:
|
||||||
|
HtmlTagClose: h1
|
||||||
|
line: 21
|
||||||
|
start: 523
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 22
|
line: 21
|
||||||
start: 528
|
start: 528
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 12
|
Whitespace: 12
|
||||||
|
@ -437,18 +269,26 @@ expression: tokens
|
||||||
line: 22
|
line: 22
|
||||||
start: 541
|
start: 541
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 23
|
line: 22
|
||||||
start: 563
|
start: 563
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 16
|
Whitespace: 16
|
||||||
line: 23
|
line: 23
|
||||||
start: 564
|
start: 564
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<span>Admin</span>"
|
HtmlTagOpen: span
|
||||||
line: 23
|
line: 23
|
||||||
start: 580
|
start: 580
|
||||||
|
- token_type:
|
||||||
|
Text: Admin
|
||||||
|
line: 23
|
||||||
|
start: 586
|
||||||
|
- token_type:
|
||||||
|
HtmlTagClose: span
|
||||||
|
line: 23
|
||||||
|
start: 591
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 24
|
line: 23
|
||||||
start: 598
|
start: 598
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 12
|
Whitespace: 12
|
||||||
|
@ -459,18 +299,26 @@ expression: tokens
|
||||||
line: 24
|
line: 24
|
||||||
start: 611
|
start: 611
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 25
|
line: 24
|
||||||
start: 621
|
start: 621
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 16
|
Whitespace: 16
|
||||||
line: 25
|
line: 25
|
||||||
start: 622
|
start: 622
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<span>User</span>"
|
HtmlTagOpen: span
|
||||||
line: 25
|
line: 25
|
||||||
start: 638
|
start: 638
|
||||||
|
- token_type:
|
||||||
|
Text: User
|
||||||
|
line: 25
|
||||||
|
start: 644
|
||||||
|
- token_type:
|
||||||
|
HtmlTagClose: span
|
||||||
|
line: 25
|
||||||
|
start: 648
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 26
|
line: 25
|
||||||
start: 655
|
start: 655
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 12
|
Whitespace: 12
|
||||||
|
@ -481,7 +329,7 @@ expression: tokens
|
||||||
line: 26
|
line: 26
|
||||||
start: 668
|
start: 668
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 27
|
line: 26
|
||||||
start: 679
|
start: 679
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 8
|
Whitespace: 8
|
||||||
|
@ -492,28 +340,28 @@ expression: tokens
|
||||||
line: 27
|
line: 27
|
||||||
start: 688
|
start: 688
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 28
|
line: 27
|
||||||
start: 699
|
start: 699
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 28
|
line: 28
|
||||||
start: 700
|
start: 700
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "</div>"
|
HtmlTagClose: div
|
||||||
line: 28
|
line: 28
|
||||||
start: 704
|
start: 704
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 29
|
line: 28
|
||||||
start: 710
|
start: 710
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "</body>"
|
HtmlTagClose: body
|
||||||
line: 29
|
line: 29
|
||||||
start: 711
|
start: 711
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 30
|
line: 29
|
||||||
start: 718
|
start: 718
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "</html>"
|
HtmlTagClose: html
|
||||||
line: 30
|
line: 30
|
||||||
start: 719
|
start: 719
|
||||||
- token_type: Eof
|
- token_type: Eof
|
||||||
|
|
|
@ -3,33 +3,13 @@ source: crates/djls-template-ast/src/lexer.rs
|
||||||
expression: tokens
|
expression: tokens
|
||||||
---
|
---
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<div"
|
HtmlTagOpen: "div class=\"container\" id=\"main\" disabled"
|
||||||
line: 1
|
line: 1
|
||||||
start: 0
|
start: 0
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 1
|
HtmlTagClose: div
|
||||||
line: 1
|
line: 1
|
||||||
start: 4
|
start: 42
|
||||||
- token_type:
|
|
||||||
Text: "class=\"container\""
|
|
||||||
line: 1
|
|
||||||
start: 5
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 1
|
|
||||||
start: 22
|
|
||||||
- token_type:
|
|
||||||
Text: "id=\"main\""
|
|
||||||
line: 1
|
|
||||||
start: 23
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 1
|
|
||||||
start: 32
|
|
||||||
- token_type:
|
|
||||||
Text: disabled></div>
|
|
||||||
line: 1
|
|
||||||
start: 33
|
|
||||||
- token_type: Eof
|
- token_type: Eof
|
||||||
line: 1
|
line: 1
|
||||||
start: ~
|
start: ~
|
||||||
|
|
|
@ -3,143 +3,66 @@ source: crates/djls-template-ast/src/lexer.rs
|
||||||
expression: tokens
|
expression: tokens
|
||||||
---
|
---
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<script"
|
ScriptTagOpen: "script type=\"text/javascript\""
|
||||||
line: 1
|
line: 1
|
||||||
start: 0
|
start: 0
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 1
|
|
||||||
start: 7
|
|
||||||
- token_type:
|
|
||||||
Text: "type=\"text/javascript\">"
|
|
||||||
line: 1
|
|
||||||
start: 8
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 2
|
line: 1
|
||||||
start: 31
|
start: 31
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 2
|
line: 2
|
||||||
start: 32
|
start: 32
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: //
|
Comment:
|
||||||
|
- Single line comment
|
||||||
|
- //
|
||||||
|
- ~
|
||||||
line: 2
|
line: 2
|
||||||
start: 36
|
start: 36
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 2
|
|
||||||
start: 38
|
|
||||||
- token_type:
|
|
||||||
Text: Single
|
|
||||||
line: 2
|
|
||||||
start: 39
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 2
|
|
||||||
start: 45
|
|
||||||
- token_type:
|
|
||||||
Text: line
|
|
||||||
line: 2
|
|
||||||
start: 46
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 2
|
|
||||||
start: 50
|
|
||||||
- token_type:
|
|
||||||
Text: comment
|
|
||||||
line: 2
|
|
||||||
start: 51
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 3
|
line: 2
|
||||||
start: 58
|
start: 58
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 3
|
line: 3
|
||||||
start: 59
|
start: 59
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: const
|
Text: const x = 1;
|
||||||
line: 3
|
line: 3
|
||||||
start: 63
|
start: 63
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 3
|
|
||||||
start: 68
|
|
||||||
- token_type:
|
|
||||||
Text: x
|
|
||||||
line: 3
|
|
||||||
start: 69
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 3
|
|
||||||
start: 70
|
|
||||||
- token_type:
|
|
||||||
Text: "="
|
|
||||||
line: 3
|
|
||||||
start: 71
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 3
|
|
||||||
start: 72
|
|
||||||
- token_type:
|
|
||||||
Text: 1;
|
|
||||||
line: 3
|
|
||||||
start: 73
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 4
|
line: 3
|
||||||
start: 75
|
start: 75
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 4
|
line: 4
|
||||||
start: 76
|
start: 76
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: /*
|
Comment:
|
||||||
|
- "Multi-line\n comment"
|
||||||
|
- /*
|
||||||
|
- "*/"
|
||||||
line: 4
|
line: 4
|
||||||
start: 80
|
start: 80
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 4
|
|
||||||
start: 82
|
|
||||||
- token_type:
|
|
||||||
Text: Multi-line
|
|
||||||
line: 4
|
|
||||||
start: 83
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 5
|
line: 4
|
||||||
start: 93
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 7
|
|
||||||
line: 5
|
|
||||||
start: 94
|
|
||||||
- token_type:
|
|
||||||
Text: comment
|
|
||||||
line: 5
|
|
||||||
start: 101
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 5
|
|
||||||
start: 108
|
|
||||||
- token_type:
|
|
||||||
Text: "*/"
|
|
||||||
line: 5
|
|
||||||
start: 109
|
|
||||||
- token_type: Newline
|
|
||||||
line: 6
|
|
||||||
start: 111
|
start: 111
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 6
|
line: 5
|
||||||
start: 112
|
start: 112
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: console.log(x);
|
Text: console.log(x);
|
||||||
line: 6
|
line: 5
|
||||||
start: 116
|
start: 116
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 7
|
line: 5
|
||||||
start: 131
|
start: 131
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "</script>"
|
HtmlTagClose: script
|
||||||
line: 7
|
line: 6
|
||||||
start: 132
|
start: 132
|
||||||
- token_type: Eof
|
- token_type: Eof
|
||||||
line: 7
|
line: 6
|
||||||
start: ~
|
start: ~
|
||||||
|
|
|
@ -3,54 +3,25 @@ source: crates/djls-template-ast/src/lexer.rs
|
||||||
expression: tokens
|
expression: tokens
|
||||||
---
|
---
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "<style"
|
StyleTagOpen: "style type=\"text/css\""
|
||||||
line: 1
|
line: 1
|
||||||
start: 0
|
start: 0
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 1
|
|
||||||
start: 6
|
|
||||||
- token_type:
|
|
||||||
Text: "type=\"text/css\">"
|
|
||||||
line: 1
|
|
||||||
start: 7
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 2
|
line: 1
|
||||||
start: 23
|
start: 23
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
line: 2
|
line: 2
|
||||||
start: 24
|
start: 24
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: /*
|
Comment:
|
||||||
|
- Header styles
|
||||||
|
- /*
|
||||||
|
- "*/"
|
||||||
line: 2
|
line: 2
|
||||||
start: 28
|
start: 28
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 2
|
|
||||||
start: 30
|
|
||||||
- token_type:
|
|
||||||
Text: Header
|
|
||||||
line: 2
|
|
||||||
start: 31
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 2
|
|
||||||
start: 37
|
|
||||||
- token_type:
|
|
||||||
Text: styles
|
|
||||||
line: 2
|
|
||||||
start: 38
|
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 2
|
|
||||||
start: 44
|
|
||||||
- token_type:
|
|
||||||
Text: "*/"
|
|
||||||
line: 2
|
|
||||||
start: 45
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 3
|
line: 2
|
||||||
start: 47
|
start: 47
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
|
@ -60,35 +31,23 @@ expression: tokens
|
||||||
Text: ".header "
|
Text: ".header "
|
||||||
line: 3
|
line: 3
|
||||||
start: 52
|
start: 52
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 3
|
|
||||||
start: 59
|
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "{"
|
Text: "{"
|
||||||
line: 3
|
line: 3
|
||||||
start: 60
|
start: 60
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 4
|
line: 3
|
||||||
start: 61
|
start: 61
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 8
|
Whitespace: 8
|
||||||
line: 4
|
line: 4
|
||||||
start: 62
|
start: 62
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "color:"
|
Text: "color: blue;"
|
||||||
line: 4
|
line: 4
|
||||||
start: 70
|
start: 70
|
||||||
- token_type:
|
|
||||||
Whitespace: 1
|
|
||||||
line: 4
|
|
||||||
start: 76
|
|
||||||
- token_type:
|
|
||||||
Text: blue;
|
|
||||||
line: 4
|
|
||||||
start: 77
|
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 5
|
line: 4
|
||||||
start: 82
|
start: 82
|
||||||
- token_type:
|
- token_type:
|
||||||
Whitespace: 4
|
Whitespace: 4
|
||||||
|
@ -99,10 +58,10 @@ expression: tokens
|
||||||
line: 5
|
line: 5
|
||||||
start: 87
|
start: 87
|
||||||
- token_type: Newline
|
- token_type: Newline
|
||||||
line: 6
|
line: 5
|
||||||
start: 88
|
start: 88
|
||||||
- token_type:
|
- token_type:
|
||||||
Text: "</style>"
|
HtmlTagClose: style
|
||||||
line: 6
|
line: 6
|
||||||
start: 89
|
start: 89
|
||||||
- token_type: Eof
|
- token_type: Eof
|
||||||
|
|
|
@ -3,11 +3,11 @@ source: crates/djls-template-ast/src/parser.rs
|
||||||
expression: ast
|
expression: ast
|
||||||
---
|
---
|
||||||
nodes:
|
nodes:
|
||||||
- Text:
|
- Comment:
|
||||||
content: "<!-- HTML comment -->"
|
content: HTML comment
|
||||||
span:
|
span:
|
||||||
start: 0
|
start: 0
|
||||||
length: 21
|
length: 19
|
||||||
- Comment:
|
- Comment:
|
||||||
content: Django comment
|
content: Django comment
|
||||||
span:
|
span:
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
source: crates/djls-template-ast/src/parser.rs
|
||||||
|
assertion_line: 643
|
||||||
|
expression: ast
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
nodes: []
|
||||||
|
line_offsets:
|
||||||
|
- 0
|
||||||
|
- 24
|
||||||
|
- 44
|
||||||
|
- 79
|
||||||
|
- 131
|
||||||
|
- 170
|
||||||
|
- 184
|
||||||
|
- 244
|
||||||
|
- 276
|
||||||
|
- 312
|
||||||
|
- 333
|
||||||
|
- 366
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
source: crates/djls-template-ast/src/parser.rs
|
||||||
|
assertion_line: 581
|
||||||
|
expression: ast
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
nodes: []
|
||||||
|
line_offsets:
|
||||||
|
- 0
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
source: crates/djls-template-ast/src/parser.rs
|
||||||
|
assertion_line: 614
|
||||||
|
expression: ast
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
nodes: []
|
||||||
|
line_offsets:
|
||||||
|
- 0
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
source: crates/djls-template-ast/src/parser.rs
|
||||||
|
assertion_line: 623
|
||||||
|
expression: ast
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
nodes: []
|
||||||
|
line_offsets:
|
||||||
|
- 0
|
|
@ -0,0 +1,38 @@
|
||||||
|
---
|
||||||
|
source: crates/djls-template-ast/src/parser.rs
|
||||||
|
assertion_line: 688
|
||||||
|
expression: ast
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
nodes: []
|
||||||
|
line_offsets:
|
||||||
|
- 0
|
||||||
|
- 16
|
||||||
|
- 23
|
||||||
|
- 34
|
||||||
|
- 66
|
||||||
|
- 97
|
||||||
|
- 134
|
||||||
|
- 151
|
||||||
|
- 191
|
||||||
|
- 215
|
||||||
|
- 241
|
||||||
|
- 270
|
||||||
|
- 298
|
||||||
|
- 313
|
||||||
|
- 331
|
||||||
|
- 343
|
||||||
|
- 354
|
||||||
|
- 386
|
||||||
|
- 451
|
||||||
|
- 494
|
||||||
|
- 532
|
||||||
|
- 605
|
||||||
|
- 644
|
||||||
|
- 683
|
||||||
|
- 710
|
||||||
|
- 748
|
||||||
|
- 776
|
||||||
|
- 800
|
||||||
|
- 815
|
||||||
|
- 827
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
source: crates/djls-template-ast/src/parser.rs
|
||||||
|
assertion_line: 425
|
||||||
|
expression: ast
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
nodes: []
|
||||||
|
line_offsets:
|
||||||
|
- 0
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
source: crates/djls-template-ast/src/parser.rs
|
||||||
|
assertion_line: 434
|
||||||
|
expression: ast
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
nodes: []
|
||||||
|
line_offsets:
|
||||||
|
- 0
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
source: crates/djls-template-ast/src/parser.rs
|
||||||
|
assertion_line: 443
|
||||||
|
expression: ast
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
nodes: []
|
||||||
|
line_offsets:
|
||||||
|
- 0
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
source: crates/djls-template-ast/src/parser.rs
|
||||||
|
assertion_line: 540
|
||||||
|
expression: ast
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
nodes: []
|
||||||
|
line_offsets:
|
||||||
|
- 0
|
||||||
|
- 32
|
||||||
|
- 59
|
||||||
|
- 76
|
||||||
|
- 113
|
||||||
|
- 133
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
source: crates/djls-template-ast/src/parser.rs
|
||||||
|
assertion_line: 557
|
||||||
|
expression: ast
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
nodes: []
|
||||||
|
line_offsets:
|
||||||
|
- 0
|
||||||
|
- 24
|
||||||
|
- 48
|
||||||
|
- 62
|
||||||
|
- 83
|
||||||
|
- 89
|
Loading…
Add table
Add a link
Reference in a new issue