Fix snippet nesting bug

This commit is contained in:
Matthew Holt 2019-08-21 11:26:48 -06:00
parent fa334c4bdf
commit b2aa679c33
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5
1 changed files with 5 additions and 6 deletions

View File

@ -459,23 +459,22 @@ func (p *parser) snippetTokens() ([]Token, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
count := 1 nesting := 1 // count our own nesting in snippets
tokens := []Token{} tokens := []Token{}
for p.Next() { for p.Next() {
if p.Val() == "}" { if p.Val() == "}" {
count-- nesting--
if count == 0 { if nesting == 0 {
break break
} }
} }
if p.Val() == "{" { if p.Val() == "{" {
p.nesting++ nesting++
count++
} }
tokens = append(tokens, p.tokens[p.cursor]) tokens = append(tokens, p.tokens[p.cursor])
} }
// make sure we're matched up // make sure we're matched up
if count != 0 { if nesting != 0 {
return nil, p.SyntaxErr("}") return nil, p.SyntaxErr("}")
} }
return tokens, nil return tokens, nil