From 8e3bb78829b79c44f0a538114f59a442db7e7559 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Wed, 11 Dec 2024 10:53:02 -0600 Subject: [PATCH] Stream track current tab depth --- src/kiss/Stream.hx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/kiss/Stream.hx b/src/kiss/Stream.hx index 3b2559e..73c932a 100644 --- a/src/kiss/Stream.hx +++ b/src/kiss/Stream.hx @@ -125,15 +125,20 @@ class Stream { public function dropChars(count:Int, taking:Bool) { for (idx in 0...count) { switch (content.charAt(idx)) { + // newline case "\n": + _currentTab = ""; absoluteChar += absolutePerNewline; line += 1; lineLengths.push(column); column = 1; startOfLine = true; + // other whitespace character case c if (c.trim() == ""): + _currentTab += c; absoluteChar += 1; column += 1; + // non-whitespace default: absoluteChar += 1; column += 1; @@ -183,6 +188,12 @@ class Stream { #end } + var _currentTab = ""; + + public function currentTab():String { + return _currentTab; + } + public function takeChars(count:Int):Option { if (count > content.length) return None;