diff --git a/src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee b/src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee index 95b97828c..0c7d7e507 100644 --- a/src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee +++ b/src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee @@ -2,6 +2,7 @@ RootView = require 'root-view' FuzzyFinder = require 'fuzzy-finder' $ = require 'jquery' {$$} = require 'space-pen' +fs = require 'fs' describe 'FuzzyFinder', -> [rootView, finder] = [] @@ -56,7 +57,7 @@ describe 'FuzzyFinder', -> runs -> expect(finder.list.children('li').length).toBe paths.length, finder.maxResults for path in paths - expect(finder.list.find("li:contains(#{path})")).toExist() + expect(finder.list.find("li:contains(#{fs.base(path)})")).toExist() expect(finder.list.children().first()).toHaveClass 'selected' expect(finder.find(".loading")).not.toBeVisible() diff --git a/src/packages/fuzzy-finder/src/fuzzy-finder.coffee b/src/packages/fuzzy-finder/src/fuzzy-finder.coffee index 00495de46..cf6bc4562 100644 --- a/src/packages/fuzzy-finder/src/fuzzy-finder.coffee +++ b/src/packages/fuzzy-finder/src/fuzzy-finder.coffee @@ -2,6 +2,7 @@ SelectList = require 'select-list' _ = require 'underscore' $ = require 'jquery' +fs = require 'fs' module.exports = class FuzzyFinder extends SelectList @@ -25,7 +26,20 @@ class FuzzyFinder extends SelectList @projectPaths = null itemForElement: (path) -> - $$ -> @li path + $$ -> + @li => + ext = fs.extension(path) + if fs.isCompressedExtension(ext) + typeClass = 'compressed-name' + else if fs.isImageExtension(ext) + typeClass = 'image-name' + else if fs.isPdfExtension(ext) + typeClass = 'pdf-name' + else + typeClass = 'text-name' + @span fs.base(path), class: "file #{typeClass}" + if folder = fs.directory(path) + @span "- #{folder}/", class: 'directory' confirmed : (path) -> return unless path.length diff --git a/src/packages/tree-view/src/file-view.coffee b/src/packages/tree-view/src/file-view.coffee index afc5b15de..ea636cbfb 100644 --- a/src/packages/tree-view/src/file-view.coffee +++ b/src/packages/tree-view/src/file-view.coffee @@ -2,29 +2,10 @@ $ = require 'jquery' Git = require 'git' fs = require 'fs' -_ = require 'underscore' module.exports = class FileView extends View - @COMPRESSED_EXTENSIONS: [ - '.gz' - '.jar' - '.tar' - '.zip' - ] - - @IMAGE_EXTENSIONS: [ - '.gif' - '.jpeg' - '.jpg' - '.png' - ] - - @PDF_EXTENSIONS: [ - '.pdf' - ] - @content: (file) -> @li class: 'file entry', => @span file.getBaseName(), class: 'name', outlet: 'fileName' @@ -35,11 +16,11 @@ class FileView extends View initialize: (@file) -> path = @getPath() extension = fs.extension(path) - if _.contains(FileView.COMPRESSED_EXTENSIONS, extension) + if fs.isCompressedExtension(extension) @fileName.addClass('compressed-name') - else if _.contains(FileView.IMAGE_EXTENSIONS, extension) + else if fs.isImageExtension(extension) @fileName.addClass('image-name') - else if _.contains(FileView.PDF_EXTENSIONS, extension) + else if fs.isPdfExtension(extension) @fileName.addClass('pdf-name') else @fileName.addClass('text-name') diff --git a/src/stdlib/fs.coffee b/src/stdlib/fs.coffee index 59a034984..9b9e97cda 100644 --- a/src/stdlib/fs.coffee +++ b/src/stdlib/fs.coffee @@ -123,3 +123,24 @@ module.exports = md5ForPath: (path) -> $native.md5ForPath(path) + + isCompressedExtension: (ext) -> + _.contains([ + '.gz' + '.jar' + '.tar' + '.zip' + ], ext) + + isImageExtension: (ext) -> + _.contains([ + '.gif' + '.jpeg' + '.jpg' + '.png' + ], ext) + + isPdfExtension: (ext) -> + _.contains([ + '.pdf' + ], ext) diff --git a/static/fuzzy-finder.css b/static/fuzzy-finder.css index 5f3456371..d894b8930 100644 --- a/static/fuzzy-finder.css +++ b/static/fuzzy-finder.css @@ -8,3 +8,37 @@ .fuzzy-finder ol:empty { margin-bottom: 0; } + +.fuzzy-finder .directory { + color: #b2b2b2; + padding-left: .5em; +} + +.fuzzy-finder .file:before { + font-family: 'Octicons Regular'; + font-size: 16px; + width: 16px; + height: 16px; + margin-right: 5px; + -webkit-font-smoothing: antialiased; +} + +.fuzzy-finder .file.text-name:before { + content: "\f011"; +} + +.fuzzy-finder .file.image-name:before { + content: "\f012"; +} + +.fuzzy-finder .file.compressed-name:before { + content: "\f013"; +} + +.fuzzy-finder .file.pdf-name:before { + content: "\f014"; +} + +.fuzzy-finder ol li { + border-bottom: 1px solid rgba(255, 255, 255, .05); +}