From 7b090bcb4acfaa8b0a5421150c66018f68713c5e Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sun, 5 Apr 2020 12:12:26 -0400 Subject: [PATCH] JavaScript Highlighter: Fix numbers starting with dot --- .../JavaScriptHighlighter.swift | 15 +++++++++++++-- jstest/main.swift | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/MongoView/Synax Highlighting/JavaScriptHighlighter.swift b/MongoView/Synax Highlighting/JavaScriptHighlighter.swift index 86c3de1..05fc8c9 100644 --- a/MongoView/Synax Highlighting/JavaScriptHighlighter.swift +++ b/MongoView/Synax Highlighting/JavaScriptHighlighter.swift @@ -295,8 +295,19 @@ class JavaScriptHighlighter { private func consumeDotLookup() { consume() // . - print("Dot lookup") - emit(token: .punctuation, range: prevCharRange()) + guard let char = peek() else { return } + if identifierStarts.contains(char) { + print("Dot lookup") + emit(token: .punctuation, range: prevCharRange()) + consumeIdentifier() + } else if CharacterSet.decimalDigits.contains(char) { + let numberStart = text.index(before: currentIndex) + while let char = peek(), CharacterSet.decimalDigits.contains(char) { + consume() + } + print("Number: \(text[numberStart..