From ad8a29df803dcecef069ca87d413db87437857aa Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Mon, 21 Jan 2013 15:01:44 -0800 Subject: [PATCH] Display error if no files match word under cursor --- .../spec/fuzzy-finder-spec.coffee | 25 +++++++++++++++++++ .../fuzzy-finder/src/fuzzy-finder.coffee | 19 +++++++++----- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee b/src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee index 27cd8a5b5..462550729 100644 --- a/src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee +++ b/src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee @@ -304,6 +304,31 @@ describe 'FuzzyFinder', -> expect(finder).not.toBeVisible() expect(openedPath).toBe "sample.txt" + it "displays error when the word under the cursor doesn't match any files", -> + editor.setText("moogoogaipan") + editor.setCursorBufferPosition([0,5]) + + rootView.trigger 'fuzzy-finder:find-under-cursor' + + waitsFor -> + finder.is(':visible') + + runs -> + expect(finder.find('.error').text().length).toBeGreaterThan 0 + + it "displays error when there is no word under the cursor", -> + editor.setText("&&&&&&&&&&&&&&& sample") + editor.setCursorBufferPosition([0,5]) + + rootView.trigger 'fuzzy-finder:find-under-cursor' + + waitsFor -> + finder.is(':visible') + + runs -> + expect(finder.find('.error').text().length).toBeGreaterThan 0 + + describe "opening a path into a split", -> beforeEach -> rootView.attachToDom() diff --git a/src/packages/fuzzy-finder/src/fuzzy-finder.coffee b/src/packages/fuzzy-finder/src/fuzzy-finder.coffee index 4c54155b7..64f271be9 100644 --- a/src/packages/fuzzy-finder/src/fuzzy-finder.coffee +++ b/src/packages/fuzzy-finder/src/fuzzy-finder.coffee @@ -105,13 +105,20 @@ class FuzzyFinder extends SelectList editor = @rootView.getActiveEditor() range = editor.getCursor().getCurrentWordBufferRange(wordRegex: @filenameRegex) currentWord = editor.getTextInRange(range) - if currentWord? - @populateProjectPaths(filter: currentWord, done: (paths) => - if paths?.length == 1 - @rootView.open(paths[0]) - else if paths?.length + + if currentWord.length == 0 + @attach() + @setError('The cursor is not over a filename') + else + @populateProjectPaths filter: currentWord, done: (paths) => + if paths.length == 0 @attach() - @miniEditor.setText('' + currentWord)) + @setError('No files match \'currentWord\'') + else if paths.length == 1 + @rootView.open(paths[0]) + else + @attach() + @miniEditor.setText(currentWord) populateProjectPaths: (options = {}) -> if @projectPaths?.length > 0