From 44b95fc6373d5dd8944b735a4ba784d13c138c80 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Mon, 30 Jun 2014 15:38:35 -0700 Subject: [PATCH 1/4] Emit errors from the out of process searches --- spec/project-spec.coffee | 11 +++++++++++ src/project.coffee | 4 ++++ src/replace-handler.coffee | 7 +++++-- src/scan-handler.coffee | 4 ++++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/spec/project-spec.coffee b/spec/project-spec.coffee index 189f7a411..11bf5fb2e 100644 --- a/spec/project-spec.coffee +++ b/spec/project-spec.coffee @@ -205,6 +205,17 @@ describe "Project", -> fs.writeFileSync(filePath, sampleContent) fs.writeFileSync(commentFilePath, sampleCommentContent) + describe "when a file doesnt exist", -> + it "calls back with an error", -> + errors = [] + waitsForPromise -> + atom.project.replace /items/gi, 'items', ['/not-a-file.js'], (result, error) -> + errors.push(error) + + runs -> + expect(errors).toHaveLength 1 + expect(errors[0].path).toBe '/not-a-file.js' + describe "when called with unopened files", -> it "replaces properly", -> results = [] diff --git a/src/project.coffee b/src/project.coffee index a780603eb..b2f7c1d49 100644 --- a/src/project.coffee +++ b/src/project.coffee @@ -239,6 +239,9 @@ class Project extends Model task.on 'scan:result-found', (result) => iterator(result) unless @isPathModified(result.filePath) + task.on 'scan:file-error', (error) => + iterator(null, error) + if _.isFunction(options.onPathsSearched) task.on 'scan:paths-searched', (numberOfPathsSearched) -> options.onPathsSearched(numberOfPathsSearched) @@ -283,6 +286,7 @@ class Project extends Model checkFinished() task.on 'replace:path-replaced', iterator + task.on 'replace:file-error', (error) -> iterator(null, error) for buffer in @getBuffers() continue unless buffer.getPath() in filePaths diff --git a/src/replace-handler.coffee b/src/replace-handler.coffee index bdadabfb3..50f6a14f7 100644 --- a/src/replace-handler.coffee +++ b/src/replace-handler.coffee @@ -6,8 +6,11 @@ module.exports = (filePaths, regexSource, regexFlags, replacementText) -> replacer = new PathReplacer() regex = new RegExp(regexSource, regexFlags) + replacer.on 'file-error', (e) -> + error = {code: e.code, path: e.path, message: e.message} + emit('replace:file-error', error) + replacer.on 'path-replaced', (result) -> emit('replace:path-replaced', result) - replacer.replacePaths regex, replacementText, filePaths, -> - callback() + replacer.replacePaths(regex, replacementText, filePaths, -> callback()) diff --git a/src/scan-handler.coffee b/src/scan-handler.coffee index 562ab2610..9dc7987d9 100644 --- a/src/scan-handler.coffee +++ b/src/scan-handler.coffee @@ -9,6 +9,10 @@ module.exports = (rootPath, regexSource, options) -> searcher = new PathSearcher() scanner = new PathScanner(rootPath, options) + searcher.on 'file-error', (e) -> + error = {code: e.code, path: e.path, message: e.message} + emit('scan:file-error', error) + searcher.on 'results-found', (result) -> emit('scan:result-found', result) From a6e437b9d3749c9a2ad35db743974dd340442e48 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Mon, 30 Jun 2014 17:40:42 -0700 Subject: [PATCH 2/4] Upgrade scandal This version emits events when errors are encountered with file reading. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index abb4f1844..84f365845 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "react-atom-fork": "^0.10.0", "reactionary-atom-fork": "^0.9.0", "runas": "0.5.4", - "scandal": "0.15.3", + "scandal": "0.16.0", "scoped-property-store": "^0.9.0", "scrollbar-style": "^0.4.0", "season": "^1.0.2", From de9f070f53e28688107d3e9876d7e79822e1dd46 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Mon, 30 Jun 2014 17:46:23 -0700 Subject: [PATCH 3/4] Upgrade find-and-replace It will display errors from scandal. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 84f365845..61c50284c 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "dev-live-reload": "0.31.0", "exception-reporting": "0.18.0", "feedback": "0.33.0", - "find-and-replace": "0.121.0", + "find-and-replace": "0.122.0", "fuzzy-finder": "0.56.0", "git-diff": "0.34.0", "go-to-line": "0.23.0", From 06d06d10e07e7abb2e7d3c4b8d2b1ae6e7715dd4 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Tue, 1 Jul 2014 10:32:30 -0700 Subject: [PATCH 4/4] :lipstick: --- spec/project-spec.coffee | 2 +- src/project.coffee | 2 +- src/replace-handler.coffee | 5 ++--- src/scan-handler.coffee | 5 ++--- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/spec/project-spec.coffee b/spec/project-spec.coffee index 11bf5fb2e..a76cbceee 100644 --- a/spec/project-spec.coffee +++ b/spec/project-spec.coffee @@ -205,7 +205,7 @@ describe "Project", -> fs.writeFileSync(filePath, sampleContent) fs.writeFileSync(commentFilePath, sampleCommentContent) - describe "when a file doesnt exist", -> + describe "when a file doesn't exist", -> it "calls back with an error", -> errors = [] waitsForPromise -> diff --git a/src/project.coffee b/src/project.coffee index b2f7c1d49..61c9d9179 100644 --- a/src/project.coffee +++ b/src/project.coffee @@ -239,7 +239,7 @@ class Project extends Model task.on 'scan:result-found', (result) => iterator(result) unless @isPathModified(result.filePath) - task.on 'scan:file-error', (error) => + task.on 'scan:file-error', (error) -> iterator(null, error) if _.isFunction(options.onPathsSearched) diff --git a/src/replace-handler.coffee b/src/replace-handler.coffee index 50f6a14f7..5c4bc5574 100644 --- a/src/replace-handler.coffee +++ b/src/replace-handler.coffee @@ -6,9 +6,8 @@ module.exports = (filePaths, regexSource, regexFlags, replacementText) -> replacer = new PathReplacer() regex = new RegExp(regexSource, regexFlags) - replacer.on 'file-error', (e) -> - error = {code: e.code, path: e.path, message: e.message} - emit('replace:file-error', error) + replacer.on 'file-error', ({code, path, message}) -> + emit('replace:file-error', {code, path, message}) replacer.on 'path-replaced', (result) -> emit('replace:path-replaced', result) diff --git a/src/scan-handler.coffee b/src/scan-handler.coffee index 9dc7987d9..7591ccd27 100644 --- a/src/scan-handler.coffee +++ b/src/scan-handler.coffee @@ -9,9 +9,8 @@ module.exports = (rootPath, regexSource, options) -> searcher = new PathSearcher() scanner = new PathScanner(rootPath, options) - searcher.on 'file-error', (e) -> - error = {code: e.code, path: e.path, message: e.message} - emit('scan:file-error', error) + searcher.on 'file-error', ({code, path, message}) -> + emit('scan:file-error', {code, path, message}) searcher.on 'results-found', (result) -> emit('scan:result-found', result)