Merge remote-tracking branch 'origin/master' into config

Conflicts:
	src/app/keymap.coffee
	src/extensions/outline-view/src/keymap.coffee
	src/extensions/outline-view/src/tag-reader.coffee
	src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee
	src/packages/fuzzy-finder/src/fuzzy-finder.coffee
This commit is contained in:
Nathan Sobo
2012-12-18 20:25:03 -07:00
parent 4ce8583cb2
commit acc0503684
24 changed files with 280 additions and 47 deletions

View File

@@ -1,6 +1,5 @@
{View, $$} = require 'space-pen'
SelectList = require 'select-list'
Editor = require 'editor'
$ = require 'jquery'
_ = require 'underscore'
@@ -57,4 +56,3 @@ class EventPalette extends SelectList
cancelled: ->
@previouslyFocusedElement.focus() if @miniEditor.isFocused

View File

@@ -229,8 +229,29 @@ describe 'FuzzyFinder', ->
runs ->
expect(rootView.project.getFilePaths).toHaveBeenCalled()
it "busts the cache when the window gains focus", ->
spyOn(rootView.project, "getFilePaths").andCallThrough()
rootView.trigger 'fuzzy-finder:toggle-file-finder'
waitsFor ->
finder.list.children('li').length > 0
runs ->
expect(rootView.project.getFilePaths).toHaveBeenCalled()
rootView.project.getFilePaths.reset()
$(window).trigger 'focus'
rootView.trigger 'fuzzy-finder:toggle-file-finder'
rootView.trigger 'fuzzy-finder:toggle-file-finder'
waitsFor ->
finder.list.children('li').length > 0
runs ->
expect(rootView.project.getFilePaths).toHaveBeenCalled()
describe "path ignoring", ->
it "ignores paths that match entries in config.fuzzy-finder.ignoredNames", ->
spyOn(rootView.project, "getFilePaths").andCallThrough()
config.set("fuzzy-finder.ignoredNames", ["tree-view"])
rootView.trigger 'fuzzy-finder:toggle-file-finder'
finder.maxItems = Infinity
@@ -240,5 +261,14 @@ describe 'FuzzyFinder', ->
finder.list.children('li').length > 0
runs ->
expect(finder.list).toContain("li:contains(dir/file1)")
expect(finder.list).not.toContain("li:contains(dir1/file1)")
expect(rootView.project.getFilePaths).toHaveBeenCalled()
rootView.project.getFilePaths.reset()
$(window).trigger 'focus'
rootView.trigger 'fuzzy-finder:toggle-file-finder'
rootView.trigger 'fuzzy-finder:toggle-file-finder'
waitsFor ->
finder.list.children('li').length > 0
runs ->
expect(rootView.project.getFilePaths).toHaveBeenCalled()

View File

@@ -2,12 +2,10 @@
SelectList = require 'select-list'
_ = require 'underscore'
$ = require 'jquery'
Editor = require 'editor'
module.exports =
class FuzzyFinder extends SelectList
@activate: (rootView) ->
requireStylesheet 'select-list.css'
requireStylesheet 'fuzzy-finder.css'
@instance = new FuzzyFinder(rootView)
rootView.command 'fuzzy-finder:toggle-file-finder', => @instance.toggleFileFinder()
@@ -22,7 +20,7 @@ class FuzzyFinder extends SelectList
initialize: (@rootView) ->
super
$(window).on 'focus', => @array = null
$(window).on 'focus', => @projectPaths = null
@observeConfig 'fuzzy-finder.ignoredNames', (ignoredNames) =>
@projectPaths = null

View File

@@ -1,6 +1,5 @@
{View, $$} = require 'space-pen'
SelectList = require 'select-list'
Editor = require 'editor'
TagGenerator = require 'outline-view/src/tag-generator'
TagReader = require 'outline-view/src/tag-reader'
Point = require 'point'

View File

@@ -0,0 +1 @@
module.exports = require 'single-trailing-newline/src/single-trailing-newline'

View File

@@ -0,0 +1,39 @@
SingleTrailingNewline = require 'single-trailing-newline'
RootView = require 'root-view'
fs = require 'fs'
describe "SingleTrailingNewline", ->
[rootView, editor, path] = []
beforeEach ->
path = "/tmp/atom-whitespace.txt"
fs.write(path, "")
rootView = new RootView(path)
SingleTrailingNewline.activate(rootView)
rootView.focus()
editor = rootView.getActiveEditor()
afterEach ->
fs.remove(path) if fs.exists(path)
rootView.remove()
it "adds a trailing newline when there is no trailing newline", ->
editor.insertText "foo"
editor.save()
expect(editor.getText()).toBe "foo\n"
it "removes extra trailing newlines and only keeps one", ->
editor.insertText "foo\n\n\n\n"
editor.save()
expect(editor.getText()).toBe "foo\n"
it "leaves a buffer with a single trailing newline untouched", ->
editor.insertText "foo\nbar\n"
editor.save()
expect(editor.getText()).toBe "foo\nbar\n"
it "leaves an empty buffer untouched", ->
editor.insertText ""
editor.save()
expect(editor.getText()).toBe ""

View File

@@ -0,0 +1,18 @@
module.exports =
name: "Add a single trailing newline"
activate: (rootView) ->
for buffer in rootView.project.getBuffers()
@addSingleTrailingNewlineBeforeSave(buffer)
rootView.project.on 'new-buffer', (buffer) =>
@addSingleTrailingNewlineBeforeSave(buffer)
addSingleTrailingNewlineBeforeSave: (buffer) ->
buffer.on 'before-save', ->
if buffer.getLastLine() is ''
row = buffer.getLastRow()
while row and buffer.lineForRow(--row) is ''
buffer.deleteRow(row)
else
buffer.append('\n')

View File

@@ -15,6 +15,7 @@
color: #d0d0d0;
-webkit-border-top-left-radius: 4px;
-webkit-border-top-right-radius: 4px;
font-size: 90%;
}
.tab.active {
@@ -35,7 +36,8 @@
font-size: 14px;
width: 14px;
height: 14px;
color: #aaa;
color: #777;
cursor: pointer;
}
.tab .close-icon:before {