From 4f469feee18f2e6b89766fbbff4d3e0a05f559e2 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 16 Apr 2019 14:25:18 -0700 Subject: [PATCH 01/25] Revert "Revert "Merge pull request #19165 from atom/mb-upgrade-tree-sitter-to-0-14-again"" This reverts commit e10adac4270f8f3e04cdc53dbd04cc12f86d905c. --- 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, 14 insertions(+), 42 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1adf69570..7d60f9ae1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7185,42 +7185,12 @@ "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==" }, "tree-sitter": { - "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==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.14.0.tgz", + "integrity": "sha512-aBdFQrQWodjA4MEC7JwPw3M0vhcL3BD4Ivj5jmL6Y8aThGdFxjO0YJzo+//yK8O5RHvfA6rgJa5CYZ2z4qzQrw==", "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 100612d8a..55e4f6252 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.13.23", + "tree-sitter": "0.14.0", "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 f4f1f3568..f56f5c8dc 100644 --- a/spec/spec-helper.coffee +++ b/spec/spec-helper.coffee @@ -12,6 +12,7 @@ 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') @@ -101,6 +102,7 @@ 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 7cc210c40..a297d033a 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, - syncOperationLimit: 0 + syncTimeoutMicros: 0 }) buffer.setLanguageMode(languageMode) await nextHighlightingUpdate(languageMode) @@ -797,7 +797,7 @@ describe('TreeSitterLanguageMode', () => { buffer, grammar: htmlGrammar, grammars: atom.grammars, - syncOperationLimit: 0 + syncTimeoutMicros: 0 }) buffer.setLanguageMode(languageMode) @@ -827,7 +827,7 @@ describe('TreeSitterLanguageMode', () => { ) atom.grammars.loadGrammarSync(jsGrammarPath) atom.grammars.assignLanguageMode(buffer, 'source.js') - buffer.getLanguageMode().syncOperationLimit = 0 + buffer.getLanguageMode().syncTimeoutMicros = 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 3b40f489f..a8baa45de 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, syncOperationLimit}) { + constructor ({buffer, grammar, config, grammars, syncTimeoutMicros}) { 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 (syncOperationLimit != null) { - this.syncOperationLimit = syncOperationLimit + if (syncTimeoutMicros != null) { + this.syncTimeoutMicros = syncTimeoutMicros } 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, { - syncOperationLimit: this.syncOperationLimit, + syncTimeoutMicros: this.syncTimeoutMicros, includedRanges: ranges }) @@ -1225,6 +1225,6 @@ function hasMatchingFoldSpec (specs, node) { }) TreeSitterLanguageMode.LanguageLayer = LanguageLayer -TreeSitterLanguageMode.prototype.syncOperationLimit = 1000 +TreeSitterLanguageMode.prototype.syncTimeoutMicros = 1000 module.exports = TreeSitterLanguageMode From fb79283d1545827b10c404bb51d4a0e3280685be Mon Sep 17 00:00:00 2001 From: Rafael Oleza Date: Fri, 3 May 2019 11:45:39 +0200 Subject: [PATCH 02/25] Increase the timeout for the FileRecoveryService tests --- spec/main-process/file-recovery-service.test.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/main-process/file-recovery-service.test.js b/spec/main-process/file-recovery-service.test.js index c47ffb944..400f8722c 100644 --- a/spec/main-process/file-recovery-service.test.js +++ b/spec/main-process/file-recovery-service.test.js @@ -8,9 +8,11 @@ const sinon = require('sinon') const { escapeRegExp } = require('underscore-plus') const temp = require('temp').track() -describe('FileRecoveryService', () => { +describe('FileRecoveryService', function () { let recoveryService, recoveryDirectory, spies + this.timeout(10 * 1000) + beforeEach(() => { recoveryDirectory = temp.mkdirSync('atom-spec-file-recovery') recoveryService = new FileRecoveryService(recoveryDirectory) From d8559d37a2e943c6efd1d907b21a97362da71341 Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Sat, 4 May 2019 12:29:52 -0400 Subject: [PATCH 03/25] Add 'it' in front of spec descriptions --- spec/jasmine-list-reporter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/jasmine-list-reporter.js b/spec/jasmine-list-reporter.js index ffe8b0858..ab1688dfd 100644 --- a/spec/jasmine-list-reporter.js +++ b/spec/jasmine-list-reporter.js @@ -2,7 +2,7 @@ const { TerminalReporter } = require('jasmine-tagged') class JasmineListReporter extends TerminalReporter { fullDescription (spec) { - let fullDescription = spec.description + let fullDescription = 'it ' + spec.description let currentSuite = spec.suite while (currentSuite) { fullDescription = currentSuite.description + ' > ' + fullDescription From 18a308de575a463d20eb1d4e8852816c71f8ec51 Mon Sep 17 00:00:00 2001 From: Rafael Oleza Date: Mon, 6 May 2019 14:00:41 +0200 Subject: [PATCH 04/25] Fix atom --dev with JSON config files --- src/main-process/atom-application.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main-process/atom-application.js b/src/main-process/atom-application.js index d5b577775..8cc9ff08e 100644 --- a/src/main-process/atom-application.js +++ b/src/main-process/atom-application.js @@ -1096,14 +1096,14 @@ class AtomApplication extends EventEmitter { if (devMode) { try { windowInitializationScript = require.resolve( - path.join(this.devResourcePath, 'src', 'initialize-application-window') + path.join(this.devResourcePath, 'src', 'initialize-application-window.coffee') ) resourcePath = this.devResourcePath } catch (error) {} } if (!windowInitializationScript) { - windowInitializationScript = require.resolve('../initialize-application-window') + windowInitializationScript = require.resolve('../initialize-application-window.coffee') } if (!resourcePath) resourcePath = this.resourcePath if (!windowDimensions) windowDimensions = this.getDimensionsForNewWindow() From 50f537c456c30908477e0e472000ebba35cab28b Mon Sep 17 00:00:00 2001 From: Winston Liu <50Wliu@users.noreply.github.com> Date: Mon, 6 May 2019 11:07:55 -0400 Subject: [PATCH 05/25] :arrow_up: bracket-matcher@0.91.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9a4ed7451..dd3493800 100644 --- a/package.json +++ b/package.json @@ -193,7 +193,7 @@ "autosave": "0.24.6", "background-tips": "0.28.0", "bookmarks": "0.46.0", - "bracket-matcher": "0.90.4", + "bracket-matcher": "0.91.0", "command-palette": "0.43.5", "dalek": "file:./packages/dalek", "deprecation-cop": "file:./packages/deprecation-cop", From 9921d1cef359edd9a6c6d6b65238f633324a8b3a Mon Sep 17 00:00:00 2001 From: Jason Rudolph Date: Mon, 6 May 2019 11:12:32 -0400 Subject: [PATCH 06/25] Unfold (if needed) when opening file at specific line --- spec/workspace-spec.js | 24 ++++++++++++++++++++++++ src/workspace.js | 3 +++ 2 files changed, 27 insertions(+) diff --git a/spec/workspace-spec.js b/spec/workspace-spec.js index 50dd57682..a12aa61a1 100644 --- a/spec/workspace-spec.js +++ b/spec/workspace-spec.js @@ -887,6 +887,30 @@ describe('Workspace', () => { ).toEqual([2, 11]) ) }) + + it('unfolds the fold containing the line', () => { + let editor + + waitsForPromise(() => + workspace.open('../sample-with-many-folds.js') + ) + + runs(() => { + editor = workspace.getActiveTextEditor() + editor.foldBufferRow(2) + expect(editor.isFoldedAtBufferRow(2)).toBe(true) + expect(editor.isFoldedAtBufferRow(3)).toBe(true) + }) + + waitsForPromise(() => + workspace.open('../sample-with-many-folds.js', { initialLine: 2 }) + ) + + runs(() => { + expect(editor.isFoldedAtBufferRow(2)).toBe(false) + expect(editor.isFoldedAtBufferRow(3)).toBe(false) + }) + }) }) describe('when the file size is over the limit defined in `core.warnOnLargeFileLimit`', () => { diff --git a/src/workspace.js b/src/workspace.js index 0b3b4a3e8..c5f7cf6b7 100644 --- a/src/workspace.js +++ b/src/workspace.js @@ -1065,6 +1065,9 @@ module.exports = class Workspace extends Model { if (typeof item.setCursorBufferPosition === 'function') { item.setCursorBufferPosition([initialLine, initialColumn]) } + if (typeof item.unfoldBufferRow === 'function') { + item.unfoldBufferRow(initialLine) + } } const index = pane.getActiveItemIndex() From 0c51771244ae07ab383a089591788ba2ea9726f3 Mon Sep 17 00:00:00 2001 From: Jason Rudolph Date: Mon, 6 May 2019 11:25:30 -0400 Subject: [PATCH 07/25] Scroll line to center when opening file at specific line --- src/workspace.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/workspace.js b/src/workspace.js index c5f7cf6b7..8f356e38e 100644 --- a/src/workspace.js +++ b/src/workspace.js @@ -1068,6 +1068,9 @@ module.exports = class Workspace extends Model { if (typeof item.unfoldBufferRow === 'function') { item.unfoldBufferRow(initialLine) } + if (typeof item.scrollToBufferPosition === 'function') { + item.scrollToBufferPosition([initialLine, initialColumn], { center: true }) + } } const index = pane.getActiveItemIndex() From b08af2f0f7c279701f18b2a5a9669067b448e227 Mon Sep 17 00:00:00 2001 From: Rafael Oleza Date: Mon, 6 May 2019 20:11:43 +0200 Subject: [PATCH 08/25] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20fs-plus@3.1.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc75d608a..20c93095a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3789,9 +3789,9 @@ } }, "fs-plus": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-3.0.2.tgz", - "integrity": "sha1-a19Sp3EolMTd6f2PgfqMYN8EHz0=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-3.1.1.tgz", + "integrity": "sha512-Se2PJdOWXqos1qVTkvqqjb0CSnfBnwwD+pq+z4ksT+e97mEShod/hrNg0TRCCsXPbJzcIq+NuzQhigunMWMJUA==", "requires": { "async": "^1.5.2", "mkdirp": "^0.5.1", diff --git a/package.json b/package.json index dd3493800..10c276f54 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "first-mate": "7.3.0", "focus-trap": "2.4.5", "fs-admin": "^0.1.7", - "fs-plus": "^3.0.1", + "fs-plus": "^3.1.1", "fstream": "0.1.24", "fuzzaldrin": "^2.1", "fuzzy-finder": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.13.1/tarball", From 8154844fe357c70f8f3ecf262c84d27a4e92aa78 Mon Sep 17 00:00:00 2001 From: Rafael Oleza Date: Mon, 6 May 2019 20:17:21 +0200 Subject: [PATCH 09/25] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20path-watcher@8.0.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 30 +++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 20c93095a..7642864df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5942,9 +5942,9 @@ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" }, "pathwatcher": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/pathwatcher/-/pathwatcher-8.0.1.tgz", - "integrity": "sha1-UaLOKgHbbDLYZ/ZYXvKEvmvQo64=", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/pathwatcher/-/pathwatcher-8.0.2.tgz", + "integrity": "sha512-zuP+fLmB2IB6z89ikcehA+vG/ITx3Cmhaj3DJrBgnbdss6dwPolSq7cDBjgZ78Vl+SXmG7CHGIOM5mqdT9h7BQ==", "requires": { "async": "~0.2.10", "emissary": "^1.3.2", @@ -5952,7 +5952,7 @@ "fs-plus": "^3.0.0", "grim": "^2.0.1", "iconv-lite": "~0.4.4", - "nan": "2.x", + "nan": "^2.10.0", "underscore-plus": "~1.x" }, "dependencies": { @@ -5964,7 +5964,7 @@ "grim": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/grim/-/grim-2.0.2.tgz", - "integrity": "sha1-52CinKe4NDsMH/r2ziDyGkbuiu0=", + "integrity": "sha512-Qj7hTJRfd87E/gUgfvM0YIH/g2UA2SV6niv6BYXk1o6w4mhgv+QyYM1EjOJQljvzgEj4SqSsRWldXIeKHz3e3Q==", "requires": { "event-kit": "^2.0.0" } @@ -7338,6 +7338,11 @@ "underscore-plus": "^1.0.0" }, "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, "diff": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", @@ -7350,6 +7355,21 @@ "requires": { "event-kit": "^2.0.0" } + }, + "pathwatcher": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/pathwatcher/-/pathwatcher-8.0.1.tgz", + "integrity": "sha512-NN+P7PRWdT8Zd1FwGOX/eLFD8tNuFBdDW/ysL5ufi9BFqAgOfQrV0pMMY/oRDFOZEUR4Y8RudXpLuPjE9b2pmQ==", + "requires": { + "async": "~0.2.10", + "emissary": "^1.3.2", + "event-kit": "^2.1.0", + "fs-plus": "^3.0.0", + "grim": "^2.0.1", + "iconv-lite": "~0.4.4", + "nan": "2.x", + "underscore-plus": "~1.x" + } } } }, diff --git a/package.json b/package.json index 10c276f54..40da9a057 100644 --- a/package.json +++ b/package.json @@ -133,7 +133,7 @@ "one-light-ui": "file:packages/one-light-ui", "open-on-github": "https://www.atom.io/api/packages/open-on-github/versions/1.3.1/tarball", "package-generator": "https://www.atom.io/api/packages/package-generator/versions/1.3.0/tarball", - "pathwatcher": "8.0.1", + "pathwatcher": "8.0.2", "postcss": "5.2.4", "postcss-selector-parser": "2.2.1", "property-accessors": "^1.1.3", From 845cf40a2d35667e975bf194db8bd693bc273a35 Mon Sep 17 00:00:00 2001 From: Rafael Oleza Date: Mon, 6 May 2019 20:22:44 +0200 Subject: [PATCH 10/25] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20text-buffer@13.15.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 38 +++++++++----------------------------- package.json | 2 +- 2 files changed, 10 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7642864df..b9908483c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7153,9 +7153,9 @@ } }, "superstring": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/superstring/-/superstring-2.3.4.tgz", - "integrity": "sha512-DcNkTCdB9F3FMZRdURSALsHi+7DWqFCI0cH+Eg8mwBg+kxQs6GeB3LrGUvCI5bEB6Dtlu2ox8UYN0onPN4JeZQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/superstring/-/superstring-2.3.6.tgz", + "integrity": "sha512-kDTXCXArhHL1lRk2zBW7ByRJByqVwoLK3E3jlf8+LcwQLZgSMs9dwrDHDpBdoOm89kstSBSrGcW8OJqNkxjWrQ==", "requires": { "nan": "^2.10.0" } @@ -7320,29 +7320,24 @@ } }, "text-buffer": { - "version": "13.15.1", - "resolved": "https://registry.npmjs.org/text-buffer/-/text-buffer-13.15.1.tgz", - "integrity": "sha512-LZx7EKhVwjo50Y9ZF6WDP2S4zLUcHAagHZhn6HzHjr0SxyWtm95HG7ApSzgLGvIzCZEoTzMYt62scUdesfzYuw==", + "version": "13.15.3", + "resolved": "https://registry.npmjs.org/text-buffer/-/text-buffer-13.15.3.tgz", + "integrity": "sha512-H2fz/N15g0fBP7R33FUFLnIyND+Lji/xmuvHg9rKgmfCh7NAVxiFIvnZTabuBhL9InqPrtV5t4hkUy+r3dNXMg==", "requires": { "delegato": "^1.0.0", "diff": "^2.2.1", "emissary": "^1.0.0", "event-kit": "^2.4.0", - "fs-admin": "^0.1.4", + "fs-admin": "^0.1.7", "fs-plus": "^3.0.0", "grim": "^2.0.2", "mkdirp": "^0.5.1", - "pathwatcher": "8.0.1", + "pathwatcher": "8.0.2", "serializable": "^1.0.3", - "superstring": "2.3.4", + "superstring": "2.3.6", "underscore-plus": "^1.0.0" }, "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" - }, "diff": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", @@ -7355,21 +7350,6 @@ "requires": { "event-kit": "^2.0.0" } - }, - "pathwatcher": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/pathwatcher/-/pathwatcher-8.0.1.tgz", - "integrity": "sha512-NN+P7PRWdT8Zd1FwGOX/eLFD8tNuFBdDW/ysL5ufi9BFqAgOfQrV0pMMY/oRDFOZEUR4Y8RudXpLuPjE9b2pmQ==", - "requires": { - "async": "~0.2.10", - "emissary": "^1.3.2", - "event-kit": "^2.1.0", - "fs-plus": "^3.0.0", - "grim": "^2.0.1", - "iconv-lite": "~0.4.4", - "nan": "2.x", - "underscore-plus": "~1.x" - } } } }, diff --git a/package.json b/package.json index 40da9a057..69be08d77 100644 --- a/package.json +++ b/package.json @@ -156,7 +156,7 @@ "symbols-view": "https://www.atom.io/api/packages/symbols-view/versions/0.118.2/tarball", "tabs": "https://www.atom.io/api/packages/tabs/versions/0.110.0/tarball", "temp": "^0.9.0", - "text-buffer": "13.15.1", + "text-buffer": "13.15.3", "timecop": "https://www.atom.io/api/packages/timecop/versions/0.36.2/tarball", "tree-sitter": "0.13.23", "tree-sitter-css": "^0.13.7", From 3bd2279d3c5585a4ec45252bef08269265ed113a Mon Sep 17 00:00:00 2001 From: David Wilson Date: Thu, 3 Jan 2019 13:21:15 -0800 Subject: [PATCH 11/25] Make invalid JS file fail Babel spec again This change uses a different JavaScript syntax to cause the "when a .js file does not start with 'use babel'" spec to fail again after upgrading to Electron 3 / Node 10.3.0. The previous generator syntax seems to be supported in the version of V8 used by Node 10 so we now need to use the 'export default' syntax to trigger an error. I've verified that changing the first line of this file to 'use babel' causes the file to load successfully, so it seems this new syntax is effective to verify the desired behavior. --- spec/fixtures/babel/invalid.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/fixtures/babel/invalid.js b/spec/fixtures/babel/invalid.js index 585a4365b..513264538 100644 --- a/spec/fixtures/babel/invalid.js +++ b/spec/fixtures/babel/invalid.js @@ -1,3 +1,3 @@ 'use 6to6'; -module.exports = async function* hello() {} +export default 42; From 614d3e150a3a671749c04a97c3b93aa6be11e83f Mon Sep 17 00:00:00 2001 From: David Wilson Date: Thu, 3 Jan 2019 15:32:41 -0800 Subject: [PATCH 12/25] Use fs.renameSync in Workspace spec to fix test failure --- spec/workspace-spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/workspace-spec.js b/spec/workspace-spec.js index 50dd57682..ae8989fe0 100644 --- a/spec/workspace-spec.js +++ b/spec/workspace-spec.js @@ -2511,7 +2511,7 @@ describe('Workspace', () => { }) runs(() => { - fs.rename( + fs.renameSync( path.join(projectPath, 'git.git'), path.join(projectPath, '.git') ) From 78f354ad3af06f70fd93b5e17661989fcdd56e7b Mon Sep 17 00:00:00 2001 From: David Wilson Date: Tue, 22 Jan 2019 13:44:35 -0800 Subject: [PATCH 13/25] Update StyleManager specs to address deprecated ::shadow selectors As of Chromium 63, ::shadow CSS selectors have been fully removed: https://developers.google.com/web/updates/2017/10/remove-shadow-piercing As a result, any usage of ::shadow in a stylesheet seems to get removed as soon as the stylesheet is applied to an HTMLStyleElement. Since we have a couple of tests that expect ::shadow selectors to be present, we must remove those expectations since those selectors do not appear any longer. --- spec/style-manager-spec.js | 9 --------- 1 file changed, 9 deletions(-) diff --git a/spec/style-manager-spec.js b/spec/style-manager-spec.js index 95ec0dacf..b27ea97ad 100644 --- a/spec/style-manager-spec.js +++ b/spec/style-manager-spec.js @@ -57,7 +57,6 @@ describe('StyleManager', () => { atom-text-editor::shadow .class-1, atom-text-editor::shadow .class-2 { color: red } atom-text-editor::shadow > .class-3 { color: yellow } atom-text-editor .class-4 { color: blue } - another-element::shadow .class-5 { color: white } atom-text-editor[data-grammar*=\"js\"]::shadow .class-6 { color: green; } atom-text-editor[mini].is-focused::shadow .class-7 { color: green; } `) @@ -69,7 +68,6 @@ describe('StyleManager', () => { 'atom-text-editor.editor .class-1, atom-text-editor.editor .class-2', 'atom-text-editor.editor > .class-3', 'atom-text-editor .class-4', - 'another-element::shadow .class-5', 'atom-text-editor[data-grammar*="js"].editor .class-6', 'atom-text-editor[mini].is-focused.editor .class-7' ]) @@ -136,13 +134,6 @@ describe('StyleManager', () => { ).toEqual(['atom-text-editor .class-1, atom-text-editor .class-2']) }) - it('does not transform CSS rules with invalid syntax', () => { - styleManager.addStyleSheet("atom-text-editor::shadow .class-1 { font-family: inval'id }") - expect(Array.from(styleManager.getStyleElements()[0].sheet.cssRules).map((r) => r.selectorText)).toEqual([ - 'atom-text-editor::shadow .class-1' - ]) - }) - it('does not throw exceptions on rules with no selectors', () => { styleManager.addStyleSheet('@media screen {font-size: 10px}', { context: 'atom-text-editor' From a7af6c7568ada5f2a114337098d323f0fa2b82f8 Mon Sep 17 00:00:00 2001 From: David Wilson Date: Fri, 25 Jan 2019 16:10:56 -0800 Subject: [PATCH 14/25] Fix usage of deprecated Buffer APIs in render process --- src/compile-cache.js | 2 +- src/file-system-blob-store.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compile-cache.js b/src/compile-cache.js index ea387a631..f1f596e86 100644 --- a/src/compile-cache.js +++ b/src/compile-cache.js @@ -177,7 +177,7 @@ exports.install = function (resourcesPath, nodeRequire) { var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1) try { - var sourceMap = JSON.parse(new Buffer(rawData, 'base64')) + var sourceMap = JSON.parse(Buffer.from(rawData, 'base64')) } catch (error) { console.warn('Error parsing source map', error.stack) return null diff --git a/src/file-system-blob-store.js b/src/file-system-blob-store.js index 67a959735..81e4a6f39 100644 --- a/src/file-system-blob-store.js +++ b/src/file-system-blob-store.js @@ -20,7 +20,7 @@ class FileSystemBlobStore { reset () { this.inMemoryBlobs = new Map() - this.storedBlob = new Buffer(0) + this.storedBlob = Buffer.alloc(0) this.storedBlobMap = {} this.usedKeys = new Set() } From 0deaf0986b6437a6fdc28003267f0700de10e8d2 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Mon, 6 May 2019 13:15:33 -0600 Subject: [PATCH 15/25] Fix bracket matcher upgrade --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc75d608a..ed090785b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2382,8 +2382,8 @@ } }, "bracket-matcher": { - "version": "https://www.atom.io/api/packages/bracket-matcher/versions/0.90.4/tarball", - "integrity": "sha512-vOeFxfxQGwBoNkuK7srzVUN65q7jL8UKN/IuReilfqp7eg46z39NSchQvw87dpgEOAQEkV3N99h/vBcMmIDTuw==", + "version": "https://www.atom.io/api/packages/bracket-matcher/versions/0.91.0/tarball", + "integrity": "sha512-bgAsyS23bu3Y9LqRul4/IjOIqUZxpnIZGBEaxBHGcC5vW/ZHCr3SYsPsN2hLXwTHvXArwgcBt1Uylc0tz25FSQ==", "requires": { "first-mate": "^7.0.1", "underscore-plus": "1.x" diff --git a/package.json b/package.json index dd3493800..f8ebd54cb 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "base16-tomorrow-dark-theme": "file:packages/base16-tomorrow-dark-theme", "base16-tomorrow-light-theme": "file:packages/base16-tomorrow-light-theme", "bookmarks": "https://www.atom.io/api/packages/bookmarks/versions/0.46.0/tarball", - "bracket-matcher": "https://www.atom.io/api/packages/bracket-matcher/versions/0.90.4/tarball", + "bracket-matcher": "https://www.atom.io/api/packages/bracket-matcher/versions/0.91.0/tarball", "cached-run-in-this-context": "0.5.0", "chai": "3.5.0", "chart.js": "^2.3.0", From 1de17649eb3914f2610773796ecc26654da14026 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Mon, 6 May 2019 13:17:01 -0600 Subject: [PATCH 16/25] :arrow_up: fuzzy-finder@1.13.2 --- package-lock.json | 478 +++++++++------------------------------------- package.json | 4 +- 2 files changed, 97 insertions(+), 385 deletions(-) diff --git a/package-lock.json b/package-lock.json index ed090785b..dcdbd1a14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,12 +21,12 @@ } }, "@atom/fuzzy-native": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@atom/fuzzy-native/-/fuzzy-native-0.7.0.tgz", - "integrity": "sha512-FupfyfBTN12/WL6zJ/GXWWMCpFAItFPkK85vEF/96YY1utSvpk3eaLTIvrwO9afbR2nJnmPpjW6YsMcat4PqOw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@atom/fuzzy-native/-/fuzzy-native-1.0.1.tgz", + "integrity": "sha512-qqpUL9NpR7Ee04CNoHK8eOXx3ON4e2AbxMFA4v1Ch6lCb7//K9YsJKTmTNT9W49dF9snV+hdgF4TNYD1gY7Qpg==", "requires": { "nan": "^2.0.0", - "node-pre-gyp": "^0.6.30", + "node-pre-gyp": "^0.10.0", "semver": "^5.0.0" }, "dependencies": { @@ -34,14 +34,6 @@ "version": "1.1.1", "bundled": true }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, "ansi-regex": { "version": "2.1.1", "bundled": true @@ -58,54 +50,10 @@ "readable-stream": "^2.0.6" } }, - "asn1": { - "version": "0.2.4", - "bundled": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true - }, - "aws4": { - "version": "1.8.0", - "bundled": true - }, "balanced-match": { "version": "1.0.0", "bundled": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "bundled": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "requires": { - "hoek": "2.x.x" - } - }, "brace-expansion": { "version": "1.1.11", "bundled": true, @@ -114,25 +62,14 @@ "concat-map": "0.0.1" } }, - "caseless": { - "version": "0.12.0", - "bundled": true - }, - "co": { - "version": "4.6.0", + "chownr": { + "version": "1.1.1", "bundled": true }, "code-point-at": { "version": "1.1.0", "bundled": true }, - "combined-stream": { - "version": "1.0.7", - "bundled": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, "concat-map": { "version": "0.0.1", "bundled": true @@ -145,26 +82,6 @@ "version": "1.0.2", "bundled": true }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "requires": { - "boom": "2.x.x" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, "debug": { "version": "2.6.9", "bundled": true, @@ -176,10 +93,6 @@ "version": "0.6.0", "bundled": true }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true - }, "delegates": { "version": "1.0.0", "bundled": true @@ -188,58 +101,17 @@ "version": "1.0.3", "bundled": true }, - "ecc-jsbn": { - "version": "0.1.2", + "fs-minipass": { + "version": "1.2.5", "bundled": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "extend": { - "version": "3.0.2", - "bundled": true - }, - "extsprintf": { - "version": "1.3.0", - "bundled": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" + "minipass": "^2.2.1" } }, "fs.realpath": { "version": "1.0.0", "bundled": true }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "requires": { - "fstream": "^1.0.0", - "inherits": "2", - "minimatch": "^3.0.0" - } - }, "gauge": { "version": "2.7.4", "bundled": true, @@ -254,19 +126,6 @@ "wide-align": "^1.1.0" } }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, "glob": { "version": "7.1.3", "bundled": true, @@ -279,47 +138,22 @@ "path-is-absolute": "^1.0.0" } }, - "graceful-fs": { - "version": "4.1.15", - "bundled": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - } - }, "has-unicode": { "version": "2.0.1", "bundled": true }, - "hawk": { - "version": "3.1.3", + "iconv-lite": { + "version": "0.4.23", "bundled": true, "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" + "safer-buffer": ">= 2.1.2 < 3" } }, - "hoek": { - "version": "2.16.3", - "bundled": true - }, - "http-signature": { - "version": "1.1.1", + "ignore-walk": { + "version": "3.0.1", "bundled": true, "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "minimatch": "^3.0.4" } }, "inflight": { @@ -345,68 +179,10 @@ "number-is-nan": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true - }, "isarray": { "version": "1.0.0", "bundled": true }, - "isstream": { - "version": "0.1.2", - "bundled": true - }, - "jsbn": { - "version": "0.1.1", - "bundled": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true - }, - "jsprim": { - "version": "1.4.1", - "bundled": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "mime-db": { - "version": "1.38.0", - "bundled": true - }, - "mime-types": { - "version": "2.1.22", - "bundled": true, - "requires": { - "mime-db": "~1.38.0" - } - }, "minimatch": { "version": "3.0.4", "bundled": true, @@ -418,6 +194,24 @@ "version": "0.0.8", "bundled": true }, + "minipass": { + "version": "2.3.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, "mkdirp": { "version": "0.5.1", "bundled": true, @@ -429,21 +223,29 @@ "version": "2.0.0", "bundled": true }, + "needle": { + "version": "2.2.1", + "bundled": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, "node-pre-gyp": { - "version": "0.6.39", + "version": "0.10.3", "bundled": true, "requires": { "detect-libc": "^1.0.2", - "hawk": "3.1.3", "mkdirp": "^0.5.1", + "needle": "^2.2.1", "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", - "rc": "^1.1.7", - "request": "2.81.0", + "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^2.2.1", - "tar-pack": "^3.4.0" + "tar": "^4" } }, "nopt": { @@ -454,6 +256,18 @@ "osenv": "^0.1.4" } }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, "npmlog": { "version": "4.1.2", "bundled": true, @@ -468,10 +282,6 @@ "version": "1.0.1", "bundled": true }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true - }, "object-assign": { "version": "4.1.1", "bundled": true @@ -503,22 +313,10 @@ "version": "1.0.1", "bundled": true }, - "performance-now": { - "version": "0.2.0", - "bundled": true - }, "process-nextick-args": { "version": "2.0.0", "bundled": true }, - "punycode": { - "version": "1.4.1", - "bundled": true - }, - "qs": { - "version": "6.4.0", - "bundled": true - }, "rc": { "version": "1.2.8", "bundled": true, @@ -548,34 +346,6 @@ "util-deprecate": "~1.0.1" } }, - "request": { - "version": "2.81.0", - "bundled": true, - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - } - }, "rimraf": { "version": "2.6.3", "bundled": true, @@ -591,6 +361,10 @@ "version": "2.1.2", "bundled": true }, + "sax": { + "version": "1.2.4", + "bundled": true + }, "semver": { "version": "5.7.0", "bundled": true @@ -603,34 +377,6 @@ "version": "3.0.2", "bundled": true }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "requires": { - "hoek": "2.x.x" - } - }, - "sshpk": { - "version": "1.16.1", - "bundled": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, "string-width": { "version": "1.0.2", "bundled": true, @@ -647,10 +393,6 @@ "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.6", - "bundled": true - }, "strip-ansi": { "version": "3.0.1", "bundled": true, @@ -663,73 +405,39 @@ "bundled": true }, "tar": { - "version": "2.2.1", + "version": "4.4.8", "bundled": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "dependencies": { + "minipass": { + "version": "2.3.5", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "requires": { + "minipass": "^2.2.1" + } + } } }, - "tar-pack": { - "version": "3.4.1", - "bundled": true, - "requires": { - "debug": "^2.2.0", - "fstream": "^1.0.10", - "fstream-ignore": "^1.0.5", - "once": "^1.3.3", - "readable-stream": "^2.1.4", - "rimraf": "^2.5.1", - "tar": "^2.2.1", - "uid-number": "^0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.4", - "bundled": true, - "requires": { - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true - }, "util-deprecate": { "version": "1.0.2", "bundled": true }, - "uuid": { - "version": "3.3.2", - "bundled": true - }, - "verror": { - "version": "1.10.0", - "bundled": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, "wide-align": { "version": "1.1.3", "bundled": true, @@ -740,6 +448,10 @@ "wrappy": { "version": "1.0.2", "bundled": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true } } }, @@ -3850,10 +3562,10 @@ "integrity": "sha1-gy9kifvodnaUWVmckUpnDsIpR+4=" }, "fuzzy-finder": { - "version": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.13.1/tarball", - "integrity": "sha512-1Obli1y5y59dpC8sADff9oWxT+Yx8nNOlYtEgyalS+O6BYeCMECSNwQMs0hATC5KP6R2I3Eo7t0yZueKO2KCjQ==", + "version": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.13.2/tarball", + "integrity": "sha512-L93zrlzaTpibScRPy8v9h/4i0f9heTuBs2gqB+tEr9PTjihlaxPwBmjFVzrHQ8rPs+aD7Fxi5O1LhcBOMo2xdA==", "requires": { - "@atom/fuzzy-native": "^0.7.0", + "@atom/fuzzy-native": "^1.0.1", "async": "0.2.6", "atom-select-list": "^0.7.0", "fs-plus": "^3.0.0", diff --git a/package.json b/package.json index f8ebd54cb..7501ebcca 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "fs-plus": "^3.0.1", "fstream": "0.1.24", "fuzzaldrin": "^2.1", - "fuzzy-finder": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.13.1/tarball", + "fuzzy-finder": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.13.2/tarball", "git-diff": "file:packages/git-diff", "git-utils": "5.5.0", "github": "https://www.atom.io/api/packages/github/versions/0.28.0/tarball", @@ -201,7 +201,7 @@ "encoding-selector": "0.23.9", "exception-reporting": "file:./packages/exception-reporting", "find-and-replace": "0.218.9", - "fuzzy-finder": "1.13.1", + "fuzzy-finder": "1.13.2", "github": "0.28.0", "git-diff": "file:./packages/git-diff", "go-to-line": "file:./packages/go-to-line", From cc7a1d036ad99e0349aa25c6c69a4ab082403f51 Mon Sep 17 00:00:00 2001 From: David Wilson Date: Thu, 17 Jan 2019 12:20:58 -0800 Subject: [PATCH 17/25] Remove listeners for specific events in Task class This change is necessary for Electron 3 to a bug in Node.js 10.2.x which causes the `removeAllListeners` method to no longer remove all listeners for any event name when no argument is passed: https://github.com/nodejs/node/pull/20924 This issue has been fixed in Node.js 10.3.0+ so we will have to remove this workaround when we move to Electron 4.0 to avoid future event handler leaks. --- src/task.coffee | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/task.coffee b/src/task.coffee index fa09c69f1..05d61f5a7 100644 --- a/src/task.coffee +++ b/src/task.coffee @@ -84,17 +84,17 @@ class Task # Routes messages from the child to the appropriate event. handleEvents: -> - @childProcess.removeAllListeners() + @childProcess.removeAllListeners('message') @childProcess.on 'message', ({event, args}) => @emitter.emit(event, args) if @childProcess? # Catch the errors that happened before task-bootstrap. if @childProcess.stdout? - @childProcess.stdout.removeAllListeners() + @childProcess.stdout.removeAllListeners('data') @childProcess.stdout.on 'data', (data) -> console.log data.toString() if @childProcess.stderr? - @childProcess.stderr.removeAllListeners() + @childProcess.stderr.removeAllListeners('data') @childProcess.stderr.on 'data', (data) -> console.error data.toString() # Public: Starts the task. @@ -147,9 +147,9 @@ class Task terminate: -> return false unless @childProcess? - @childProcess.removeAllListeners() - @childProcess.stdout?.removeAllListeners() - @childProcess.stderr?.removeAllListeners() + @childProcess.removeAllListeners('message') + @childProcess.stdout?.removeAllListeners('data') + @childProcess.stderr?.removeAllListeners('data') @childProcess.kill() @childProcess = null From 166e7d23867760b9881004143df57232c14bdf6b Mon Sep 17 00:00:00 2001 From: Rafael Oleza Date: Mon, 6 May 2019 21:35:45 +0200 Subject: [PATCH 18/25] Add TODOs to remember to fix this when upgrading to electron v4 --- src/task.coffee | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/task.coffee b/src/task.coffee index 05d61f5a7..4f41cd02e 100644 --- a/src/task.coffee +++ b/src/task.coffee @@ -84,16 +84,22 @@ class Task # Routes messages from the child to the appropriate event. handleEvents: -> + # TodoElectronIssue: removeAllListeners() without arguments does not work on electron v3. + # Remove the argument when migrating to electron v4. @childProcess.removeAllListeners('message') @childProcess.on 'message', ({event, args}) => @emitter.emit(event, args) if @childProcess? # Catch the errors that happened before task-bootstrap. if @childProcess.stdout? + # TodoElectronIssue: removeAllListeners() without arguments does not work on electron v3. + # Remove the argument when migrating to electron v4. @childProcess.stdout.removeAllListeners('data') @childProcess.stdout.on 'data', (data) -> console.log data.toString() if @childProcess.stderr? + # TodoElectronIssue: removeAllListeners() without arguments does not work on electron v3. + # Remove the argument when migrating to electron v4. @childProcess.stderr.removeAllListeners('data') @childProcess.stderr.on 'data', (data) -> console.error data.toString() @@ -147,6 +153,8 @@ class Task terminate: -> return false unless @childProcess? + # TodoElectronIssue: removeAllListeners() without arguments does not work on electron v3. + # Remove the argument when migrating to electron v4. @childProcess.removeAllListeners('message') @childProcess.stdout?.removeAllListeners('data') @childProcess.stderr?.removeAllListeners('data') From dcbf9ed1c66ccd764837264c3717387111a4aac3 Mon Sep 17 00:00:00 2001 From: Rafael Oleza Date: Mon, 6 May 2019 21:41:24 +0200 Subject: [PATCH 19/25] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20nsfw@1.0.22?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 68 +++-------------------------------------------- package.json | 2 +- 2 files changed, 5 insertions(+), 65 deletions(-) diff --git a/package-lock.json b/package-lock.json index b9908483c..7b56ba6dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -744,15 +744,11 @@ } }, "@atom/nsfw": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/@atom/nsfw/-/nsfw-1.0.18.tgz", - "integrity": "sha512-YceKV9a3X62mh4Q78Nyi8aTRaoVGdpeJBHogL8gxU17iBhEpYvxGgMfTe02j1hH2taFT4barkZ5RdZkGKIsJ/w==", + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/@atom/nsfw/-/nsfw-1.0.22.tgz", + "integrity": "sha512-D1yp+X31Jed/2xkGXTurC9CGZO4d2WzEr5Rxi1elzv7bipqtIcM7HmxV0gK+WceeEj2+V1lrIINhU6mbXsJ69w==", "requires": { - "fs-extra": "^0.26.5", - "lodash.isinteger": "^4.0.4", - "lodash.isundefined": "^3.0.1", - "nan": "^2.0.0", - "promisify-node": "^0.3.0" + "nan": "^2.10.0" } }, "@atom/source-map-support": { @@ -3758,28 +3754,6 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha1-a+Dem+mYzhavivwkSXue6bfM2a0=" }, - "fs-extra": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", - "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "jsonfile": { - "version": "2.4.0", - "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, "fs-minipass": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", @@ -4686,14 +4660,6 @@ "is-buffer": "^1.1.5" } }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "requires": { - "graceful-fs": "^4.1.9" - } - }, "language-c": { "version": "https://www.atom.io/api/packages/language-c/versions/0.60.15/tarball", "integrity": "sha512-dCNjAEwyA69lnWYiiSOGEbEFuswaHCYdkeaat4TJw48oNTDgnXnUnPeyEimbL5MIx4iLJx1dWg8r3kTmYBTvYQ==", @@ -5133,16 +5099,6 @@ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isundefined": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", - "integrity": "sha1-I+89lTVWUgOmbO/VuDD4SJEa+0g=" - }, "lodash.keys": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", @@ -5708,14 +5664,6 @@ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" }, - "nodegit-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nodegit-promise/-/nodegit-promise-4.0.0.tgz", - "integrity": "sha1-VyKxhPLfcycWEGSnkdLoQskWezQ=", - "requires": { - "asap": "~2.0.3" - } - }, "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", @@ -6101,14 +6049,6 @@ "asap": "~2.0.3" } }, - "promisify-node": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promisify-node/-/promisify-node-0.3.0.tgz", - "integrity": "sha1-tLVaz5D6p9K4uQyjlomQhsAwYM8=", - "requires": { - "nodegit-promise": "~4.0.0" - } - }, "prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", diff --git a/package.json b/package.json index 69be08d77..efd19d215 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "license": "MIT", "electronVersion": "2.0.18", "dependencies": { - "@atom/nsfw": "1.0.18", + "@atom/nsfw": "1.0.22", "@atom/source-map-support": "^0.3.4", "@atom/watcher": "1.3.1", "about": "file:packages/about", From d66bc8747a227d8fa3d29169f57a069c1374faa4 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 6 May 2019 13:28:01 -0700 Subject: [PATCH 20/25] :arrow_up: tree-sitter (prerelease) --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d60f9ae1..7d16076e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7185,9 +7185,9 @@ "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.15.0-0", + "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.15.0-0.tgz", + "integrity": "sha512-RHtdWLCUZM/x43imRGRA5+A9VjhBBWXTwd8bEzjCWswmPipU5gwtszyRFsAuLVOQStCmy2DZ4uVmvTOsyCoDng==", "requires": { "nan": "^2.10.0", "prebuild-install": "^5.0.0" diff --git a/package.json b/package.json index 55e4f6252..cea9fa547 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.15.0-0", "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", From a3f022883fe720089378b06368ffa076b9a34253 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 6 May 2019 14:05:56 -0700 Subject: [PATCH 21/25] :arrow_up: tree-sitter (prerelease) --- package-lock.json | 15 +++++++++++---- package.json | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d16076e4..ea07634d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7185,12 +7185,19 @@ "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==" }, "tree-sitter": { - "version": "0.15.0-0", - "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.15.0-0.tgz", - "integrity": "sha512-RHtdWLCUZM/x43imRGRA5+A9VjhBBWXTwd8bEzjCWswmPipU5gwtszyRFsAuLVOQStCmy2DZ4uVmvTOsyCoDng==", + "version": "0.15.0-1", + "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.15.0-1.tgz", + "integrity": "sha512-2FeiKFUZfJ1MxKqJ5GTAIoQ/SqpqwNeUAdKgZi3MS8m368Mb1Cv6+zyQDcrKyrJWLtKmZs15YJrD9nbMUdcUiA==", "requires": { - "nan": "^2.10.0", + "nan": "^2.13.2", "prebuild-install": "^5.0.0" + }, + "dependencies": { + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" + } } }, "tree-sitter-bash": { diff --git a/package.json b/package.json index cea9fa547..92fad7234 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.15.0-0", + "tree-sitter": "0.15.0-1", "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", From 59319d639a04db464e46cdfbe58bffba34b5ec47 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 6 May 2019 14:50:38 -0700 Subject: [PATCH 22/25] Update test to expect new rendering of missing tree-sitter nodes --- spec/tree-sitter-language-mode-spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/tree-sitter-language-mode-spec.js b/spec/tree-sitter-language-mode-spec.js index a297d033a..643a0d0c7 100644 --- a/spec/tree-sitter-language-mode-spec.js +++ b/spec/tree-sitter-language-mode-spec.js @@ -143,7 +143,7 @@ describe('TreeSitterLanguageMode', () => { languageMode.tree.rootNode .descendantForPosition(Point(1, 2), Point(1, 6)) .toString() - ).toBe('(declaration (primitive_type) (identifier) (MISSING))') + ).toBe('(declaration (primitive_type) (identifier) (MISSING ";"))') expectTokensToEqual(editor, [ [ From e33ac81167c73513926e7fd4419fc0e1821301de Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 6 May 2019 16:45:05 -0700 Subject: [PATCH 23/25] :arrow_up: tree-sitter (stable release) --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index ea07634d5..65f4cb2c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7185,9 +7185,9 @@ "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==" }, "tree-sitter": { - "version": "0.15.0-1", - "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.15.0-1.tgz", - "integrity": "sha512-2FeiKFUZfJ1MxKqJ5GTAIoQ/SqpqwNeUAdKgZi3MS8m368Mb1Cv6+zyQDcrKyrJWLtKmZs15YJrD9nbMUdcUiA==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.15.0.tgz", + "integrity": "sha512-3CDZ7X4hSJgMXOo8WWhYIwS06hFDmI3x6/3rX+i+LP4ykL3UWVt5TgNKYjAkgBxbpFEHGkaSBe5LRQu5LHOQ3A==", "requires": { "nan": "^2.13.2", "prebuild-install": "^5.0.0" diff --git a/package.json b/package.json index 92fad7234..e13e00f25 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.15.0-1", + "tree-sitter": "0.15.0", "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", From 1efa4f36ea8297529c47bebd1b16bca71af46037 Mon Sep 17 00:00:00 2001 From: Rafael Oleza Date: Tue, 7 May 2019 10:16:56 +0200 Subject: [PATCH 24/25] Decaffeinate src/initialize-application-window.js --- spec/main-process/atom-application.test.js | 2 +- ...offee => initialize-application-window.js} | 76 ++++++++++--------- src/main-process/atom-application.js | 4 +- 3 files changed, 45 insertions(+), 37 deletions(-) rename src/{initialize-application-window.coffee => initialize-application-window.js} (54%) diff --git a/spec/main-process/atom-application.test.js b/spec/main-process/atom-application.test.js index 3134ea5fa..46d470d4e 100644 --- a/spec/main-process/atom-application.test.js +++ b/spec/main-process/atom-application.test.js @@ -598,7 +598,7 @@ describe('AtomApplication', function () { assert.notStrictEqual(uw, w0) assert.strictEqual( uw.loadSettings.windowInitializationScript, - path.resolve(__dirname, '../../src/initialize-application-window.coffee') + path.resolve(__dirname, '../../src/initialize-application-window.js') ) uw.emit('window:loaded') diff --git a/src/initialize-application-window.coffee b/src/initialize-application-window.js similarity index 54% rename from src/initialize-application-window.coffee rename to src/initialize-application-window.js index c141e67c3..d34c0a8e6 100644 --- a/src/initialize-application-window.coffee +++ b/src/initialize-application-window.js @@ -1,14 +1,15 @@ -AtomEnvironment = require './atom-environment' -ApplicationDelegate = require './application-delegate' -Clipboard = require './clipboard' -TextEditor = require './text-editor' -TextEditorComponent = require './text-editor-component' -FileSystemBlobStore = require './file-system-blob-store' -NativeCompileCache = require './native-compile-cache' -CompileCache = require './compile-cache' -ModuleCache = require './module-cache' +const AtomEnvironment = require('./atom-environment') +const ApplicationDelegate = require('./application-delegate') +const Clipboard = require('./clipboard') +const TextEditor = require('./text-editor') -if global.isGeneratingSnapshot +require('./text-editor-component') +require('./file-system-blob-store') +require('./native-compile-cache') +require('./compile-cache') +require('./module-cache') + +if (global.isGeneratingSnapshot) { require('about') require('archive-view') require('autocomplete-atom-api') @@ -61,50 +62,57 @@ if global.isGeneratingSnapshot require('welcome') require('whitespace') require('wrap-guide') +} -clipboard = new Clipboard +const clipboard = new Clipboard() TextEditor.setClipboard(clipboard) -TextEditor.viewForItem = (item) -> atom.views.getView(item) +TextEditor.viewForItem = item => atom.views.getView(item) global.atom = new AtomEnvironment({ clipboard, - applicationDelegate: new ApplicationDelegate, + applicationDelegate: new ApplicationDelegate(), enablePersistence: true }) TextEditor.setScheduler(global.atom.views) global.atom.preloadPackages() -# Like sands through the hourglass, so are the days of our lives. -module.exports = ({blobStore}) -> - {updateProcessEnv} = require('./update-process-env') - path = require 'path' - require './window' - getWindowLoadSettings = require './get-window-load-settings' - {ipcRenderer} = require 'electron' - {resourcePath, devMode, env} = getWindowLoadSettings() - require './electron-shims' +// Like sands through the hourglass, so are the days of our lives. +module.exports = function ({ blobStore }) { + const { updateProcessEnv } = require('./update-process-env') + const path = require('path') + require('./window') + const getWindowLoadSettings = require('./get-window-load-settings') + const { ipcRenderer } = require('electron') + const { resourcePath, devMode } = getWindowLoadSettings() + require('./electron-shims') - # Add application-specific exports to module search path. - exportsPath = path.join(resourcePath, 'exports') + // Add application-specific exports to module search path. + const exportsPath = path.join(resourcePath, 'exports') require('module').globalPaths.push(exportsPath) process.env.NODE_PATH = exportsPath - # Make React faster - process.env.NODE_ENV ?= 'production' unless devMode + // Make React faster + if (!devMode && process.env.NODE_ENV == null) { + process.env.NODE_ENV = 'production' + } global.atom.initialize({ - window, document, blobStore, + window, + document, + blobStore, configDirPath: process.env.ATOM_HOME, env: process.env }) - global.atom.startEditorWindow().then -> - # Workaround for focus getting cleared upon window creation - windowFocused = -> + return global.atom.startEditorWindow().then(function () { + // Workaround for focus getting cleared upon window creation + const windowFocused = function () { window.removeEventListener('focus', windowFocused) - setTimeout (-> document.querySelector('atom-workspace').focus()), 0 + setTimeout(() => document.querySelector('atom-workspace').focus(), 0) + } window.addEventListener('focus', windowFocused) - ipcRenderer.on('environment', (event, env) -> - updateProcessEnv(env) - ) + + ipcRenderer.on('environment', (event, env) => updateProcessEnv(env)) + }) +} diff --git a/src/main-process/atom-application.js b/src/main-process/atom-application.js index 8cc9ff08e..d5b577775 100644 --- a/src/main-process/atom-application.js +++ b/src/main-process/atom-application.js @@ -1096,14 +1096,14 @@ class AtomApplication extends EventEmitter { if (devMode) { try { windowInitializationScript = require.resolve( - path.join(this.devResourcePath, 'src', 'initialize-application-window.coffee') + path.join(this.devResourcePath, 'src', 'initialize-application-window') ) resourcePath = this.devResourcePath } catch (error) {} } if (!windowInitializationScript) { - windowInitializationScript = require.resolve('../initialize-application-window.coffee') + windowInitializationScript = require.resolve('../initialize-application-window') } if (!resourcePath) resourcePath = this.resourcePath if (!windowDimensions) windowDimensions = this.getDimensionsForNewWindow() From 4ac6107f953f4d83ea003f7dd2ce7be1ac08dab7 Mon Sep 17 00:00:00 2001 From: Jason Rudolph Date: Tue, 7 May 2019 09:20:00 -0400 Subject: [PATCH 25/25] :art: Use `await` to make the world a better place /xref https://github.com/atom/atom/pull/19272#discussion_r281562954 --- spec/workspace-spec.js | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/spec/workspace-spec.js b/spec/workspace-spec.js index a12aa61a1..139b115ca 100644 --- a/spec/workspace-spec.js +++ b/spec/workspace-spec.js @@ -888,28 +888,18 @@ describe('Workspace', () => { ) }) - it('unfolds the fold containing the line', () => { + it('unfolds the fold containing the line', async () => { let editor - waitsForPromise(() => - workspace.open('../sample-with-many-folds.js') - ) + await workspace.open('../sample-with-many-folds.js') + editor = workspace.getActiveTextEditor() + editor.foldBufferRow(2) + expect(editor.isFoldedAtBufferRow(2)).toBe(true) + expect(editor.isFoldedAtBufferRow(3)).toBe(true) - runs(() => { - editor = workspace.getActiveTextEditor() - editor.foldBufferRow(2) - expect(editor.isFoldedAtBufferRow(2)).toBe(true) - expect(editor.isFoldedAtBufferRow(3)).toBe(true) - }) - - waitsForPromise(() => - workspace.open('../sample-with-many-folds.js', { initialLine: 2 }) - ) - - runs(() => { - expect(editor.isFoldedAtBufferRow(2)).toBe(false) - expect(editor.isFoldedAtBufferRow(3)).toBe(false) - }) + await workspace.open('../sample-with-many-folds.js', { initialLine: 2 }) + expect(editor.isFoldedAtBufferRow(2)).toBe(false) + expect(editor.isFoldedAtBufferRow(3)).toBe(false) }) })