From 2219c74b84092efaa8f85734a36d5c614ec70f36 Mon Sep 17 00:00:00 2001 From: Nikolay Yakimov Date: Wed, 24 Mar 2021 16:48:19 +0300 Subject: [PATCH] Fix tree-sitter-language-mode null highlight iterators --- src/tree-sitter-language-mode.js | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/tree-sitter-language-mode.js b/src/tree-sitter-language-mode.js index 99aafffd9..846c6accc 100644 --- a/src/tree-sitter-language-mode.js +++ b/src/tree-sitter-language-mode.js @@ -145,7 +145,7 @@ class TreeSitterLanguageMode { */ buildHighlightIterator() { - if (!this.rootLanguageLayer) return new NullHighlightIterator(); + if (!this.rootLanguageLayer) return new NullLanguageModeHighlightIterator(); return new HighlightIterator(this); } @@ -651,7 +651,7 @@ class LanguageLayer { if (this.tree) { return new LayerHighlightIterator(this, this.tree.walk()); } else { - return new NullHighlightIterator(); + return new NullLayerHighlightIterator(); } } @@ -1337,7 +1337,26 @@ class NodeCursorAdaptor { } } -class NullHighlightIterator { +class NullLanguageModeHighlightIterator { + seek() { + return []; + } + compare() { + return 1; + } + moveToSuccessor() {} + getPosition() { + return Point.INFINITY; + } + getOpenScopeIds() { + return []; + } + getCloseScopeIds() { + return []; + } +} + +class NullLayerHighlightIterator { seek() { return null; }