From e10adac4270f8f3e04cdc53dbd04cc12f86d905c Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 16 Apr 2019 12:54:16 -0700 Subject: [PATCH] Revert "Merge pull request #19165 from atom/mb-upgrade-tree-sitter-to-0-14-again" This reverts commit ce2e2117d8f50537e9f88c9f71f1b3a742aa45e3, reversing changes made to 4ce00667b5fca25348080622bb7937e564b9c7c8. --- package-lock.json | 36 +++++++++++++++++++++++--- package.json | 2 +- spec/spec-helper.coffee | 2 -- spec/tree-sitter-language-mode-spec.js | 6 ++--- src/tree-sitter-language-mode.js | 10 +++---- 5 files changed, 42 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d60f9ae1..1adf69570 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7185,12 +7185,42 @@ "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==" }, "tree-sitter": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.14.0.tgz", - "integrity": "sha512-aBdFQrQWodjA4MEC7JwPw3M0vhcL3BD4Ivj5jmL6Y8aThGdFxjO0YJzo+//yK8O5RHvfA6rgJa5CYZ2z4qzQrw==", + "version": "0.13.23", + "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.13.23.tgz", + "integrity": "sha512-75AiPbMEstv+YK8h4FkAHnmAJ6nNIUj/NFzRvKCHovmwSEKMi8Wc/E/crB4lJnHBOfV/f/DMQjN+e1Y36kagug==", "requires": { "nan": "^2.10.0", "prebuild-install": "^5.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "prebuild-install": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.2.1.tgz", + "integrity": "sha512-9DAccsInWHB48TBQi2eJkLPE049JuAI6FjIH0oIrij4bpDVEbX6JvlWRAcAAlUqBHhjgq0jNqA3m3bBXWm9v6w==", + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^1.0.2", + "github-from-package": "0.0.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.2.0", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "os-homedir": "^1.0.1", + "pump": "^2.0.1", + "rc": "^1.2.7", + "simple-get": "^2.7.0", + "tar-fs": "^1.13.0", + "tunnel-agent": "^0.6.0", + "which-pm-runs": "^1.0.0" + } + } } }, "tree-sitter-bash": { diff --git a/package.json b/package.json index 55e4f6252..100612d8a 100644 --- a/package.json +++ b/package.json @@ -158,7 +158,7 @@ "temp": "^0.9.0", "text-buffer": "13.15.1", "timecop": "https://www.atom.io/api/packages/timecop/versions/0.36.2/tarball", - "tree-sitter": "0.14.0", + "tree-sitter": "0.13.23", "tree-sitter-css": "^0.13.7", "tree-view": "https://www.atom.io/api/packages/tree-view/versions/0.226.0/tarball", "typescript-simple": "1.0.0", diff --git a/spec/spec-helper.coffee b/spec/spec-helper.coffee index f56f5c8dc..f4f1f3568 100644 --- a/spec/spec-helper.coffee +++ b/spec/spec-helper.coffee @@ -12,7 +12,6 @@ FindParentDir = require 'find-parent-dir' TextEditor = require '../src/text-editor' TextEditorElement = require '../src/text-editor-element' TextMateLanguageMode = require '../src/text-mate-language-mode' -TreeSitterLanguageMode = require '../src/tree-sitter-language-mode' {clipboard} = require 'electron' jasmineStyle = document.createElement('style') @@ -102,7 +101,6 @@ beforeEach -> # make tokenization synchronous TextMateLanguageMode.prototype.chunkSize = Infinity - TreeSitterLanguageMode.prototype.syncTimeoutMicros = Infinity spyOn(TextMateLanguageMode.prototype, "tokenizeInBackground").andCallFake -> @tokenizeNextChunk() # Without this spy, TextEditor.onDidTokenize callbacks would not be called diff --git a/spec/tree-sitter-language-mode-spec.js b/spec/tree-sitter-language-mode-spec.js index a297d033a..7cc210c40 100644 --- a/spec/tree-sitter-language-mode-spec.js +++ b/spec/tree-sitter-language-mode-spec.js @@ -414,7 +414,7 @@ describe('TreeSitterLanguageMode', () => { const languageMode = new TreeSitterLanguageMode({ buffer, grammar, - syncTimeoutMicros: 0 + syncOperationLimit: 0 }) buffer.setLanguageMode(languageMode) await nextHighlightingUpdate(languageMode) @@ -797,7 +797,7 @@ describe('TreeSitterLanguageMode', () => { buffer, grammar: htmlGrammar, grammars: atom.grammars, - syncTimeoutMicros: 0 + syncOperationLimit: 0 }) buffer.setLanguageMode(languageMode) @@ -827,7 +827,7 @@ describe('TreeSitterLanguageMode', () => { ) atom.grammars.loadGrammarSync(jsGrammarPath) atom.grammars.assignLanguageMode(buffer, 'source.js') - buffer.getLanguageMode().syncTimeoutMicros = 0 + buffer.getLanguageMode().syncOperationLimit = 0 const initialSeed = Date.now() for (let i = 0, trialCount = 10; i < trialCount; i++) { diff --git a/src/tree-sitter-language-mode.js b/src/tree-sitter-language-mode.js index a8baa45de..3b40f489f 100644 --- a/src/tree-sitter-language-mode.js +++ b/src/tree-sitter-language-mode.js @@ -24,7 +24,7 @@ class TreeSitterLanguageMode { } } - constructor ({buffer, grammar, config, grammars, syncTimeoutMicros}) { + constructor ({buffer, grammar, config, grammars, syncOperationLimit}) { TreeSitterLanguageMode._patchSyntaxNode() this.id = nextId++ this.buffer = buffer @@ -35,8 +35,8 @@ class TreeSitterLanguageMode { this.rootLanguageLayer = new LanguageLayer(this, grammar) this.injectionsMarkerLayer = buffer.addMarkerLayer() - if (syncTimeoutMicros != null) { - this.syncTimeoutMicros = syncTimeoutMicros + if (syncOperationLimit != null) { + this.syncOperationLimit = syncOperationLimit } this.rootScopeDescriptor = new ScopeDescriptor({scopes: [this.grammar.scopeName]}) @@ -111,7 +111,7 @@ class TreeSitterLanguageMode { const parser = PARSER_POOL.pop() || new Parser() parser.setLanguage(language) const result = parser.parseTextBuffer(this.buffer.buffer, oldTree, { - syncTimeoutMicros: this.syncTimeoutMicros, + syncOperationLimit: this.syncOperationLimit, includedRanges: ranges }) @@ -1225,6 +1225,6 @@ function hasMatchingFoldSpec (specs, node) { }) TreeSitterLanguageMode.LanguageLayer = LanguageLayer -TreeSitterLanguageMode.prototype.syncTimeoutMicros = 1000 +TreeSitterLanguageMode.prototype.syncOperationLimit = 1000 module.exports = TreeSitterLanguageMode