Add octicons to fuzzy-finder

Also place file base name first followed by
directory path in darker color
This commit is contained in:
Kevin Sawicki 2012-12-26 20:12:37 -08:00
parent 83af57db41
commit ae6039e74d
5 changed files with 75 additions and 24 deletions

View File

@ -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()

View File

@ -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

View File

@ -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')

View File

@ -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)

View File

@ -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);
}