super basic "ack in project" (cmd-shift-f)

the UI could use some improvements
This commit is contained in:
Chris Wanstrath
2011-11-25 22:17:57 -08:00
parent d50a29ffa9
commit 3e2f867e87
3 changed files with 30 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
_ = require 'underscore'
fs = require 'fs'
ChildProcess = require 'child-process'
Extension = require 'extension'
ModalSelector = require 'modal-selector'
module.exports =
class FindInProject extends Extension
constructor: ->
atom.on 'project:open', @startup
startup: (@project) =>
query: ->
return if not @project
@findInProject (prompt "Find in project:"), (results) =>
@pane = new ModalSelector -> results
@pane.show()
findInProject: (term, callback) ->
root = @project.url
ChildProcess.exec "ack --ignore-dir=Cocoa/build --ignore-dir=vendor #{term} #{@project.url}", (error, stdout, stderr) ->
callback _.map (stdout.split "\n"), (line) ->
name: line.replace root, ''
url: _.first line.split ":"

View File

@@ -0,0 +1 @@
module.exports = require 'findinproject/find-in-project'

View File

@@ -0,0 +1,2 @@
findinproject:
'cmd-shift-f': (findinproject) => findinproject.query()