unified setting higlighting range for errors

This commit is contained in:
Ilya Puchka
2017-12-25 01:10:58 +01:00
parent c486617854
commit bb3f33724b
4 changed files with 19 additions and 42 deletions

View File

@@ -15,13 +15,9 @@ public func renderNodes(_ nodes:[NodeType], _ context:Context) throws -> String
do {
return try $0.render(context)
} catch {
if var syntaxError = error as? TemplateSyntaxError, syntaxError.lexeme == nil, let token = $0.token {
if let contentsRange = context.environment.template?.templateString.range(of: token.contents, range: token.range) {
syntaxError.lexeme = Token.block(value: token.contents, at: contentsRange)
} else {
syntaxError.lexeme = token
}
throw syntaxError
if var error = error as? TemplateSyntaxError {
error.lexeme = error.lexeme ?? $0.token
throw error
} else {
throw error
}