mirror of
https://github.com/atom/atom.git
synced 2026-01-24 14:28:14 -05:00
Hide/show ignored entries in tree view based on project setting
This commit is contained in:
@@ -850,3 +850,21 @@ describe "TreeView", ->
|
||||
|
||||
waitsFor "directory view contens to refresh", ->
|
||||
treeView.root.entries.find('.entry').length == entriesCountBefore
|
||||
|
||||
describe "ignored files", ->
|
||||
[ignoreFile] = []
|
||||
|
||||
beforeEach ->
|
||||
ignoreFile = fs.join(require.resolve('fixtures/tree-view'), '.gitignore')
|
||||
fs.write(ignoreFile, 'tree-view.js')
|
||||
project.setHideIgnoredFiles(false)
|
||||
|
||||
afterEach ->
|
||||
fs.remove(ignoreFile) if fs.exists(ignoreFile)
|
||||
|
||||
it "toggles display of ignored path when setting is toggled", ->
|
||||
expect(treeView.find('.file:contains(tree-view.js)').length).toBe 1
|
||||
rootView.trigger 'window:toggle-ignored-files'
|
||||
expect(treeView.find('.file:contains(tree-view.js)').length).toBe 0
|
||||
rootView.trigger 'window:toggle-ignored-files'
|
||||
expect(treeView.find('.file:contains(tree-view.js)').length).toBe 1
|
||||
|
||||
@@ -15,8 +15,9 @@ class DirectoryView extends View
|
||||
directory: null
|
||||
entries: null
|
||||
header: null
|
||||
project: null
|
||||
|
||||
initialize: ({@directory, isExpanded} = {}) ->
|
||||
initialize: ({@directory, isExpanded, @project} = {}) ->
|
||||
@expand() if isExpanded
|
||||
@disclosureArrow.on 'click', => @toggleExpansion()
|
||||
@directoryName.addClass('ignored') if new Git(@directory.getPath()).isPathIgnored(@directory.getPath())
|
||||
@@ -24,13 +25,17 @@ class DirectoryView extends View
|
||||
getPath: ->
|
||||
@directory.path
|
||||
|
||||
isPathIgnored: (path) ->
|
||||
@project.hideIgnoredFiles and @project.repo?.isPathIgnored(path)
|
||||
|
||||
buildEntries: ->
|
||||
@unwatchDescendantEntries()
|
||||
@entries?.remove()
|
||||
@entries = $$ -> @ol class: 'entries'
|
||||
for entry in @directory.getEntries()
|
||||
continue if @isPathIgnored(entry.path)
|
||||
if entry instanceof Directory
|
||||
@entries.append(new DirectoryView(directory: entry, isExpanded: false))
|
||||
@entries.append(new DirectoryView(directory: entry, isExpanded: false, project: @project))
|
||||
else
|
||||
@entries.append(new FileView(entry))
|
||||
@append(@entries)
|
||||
|
||||
@@ -29,7 +29,7 @@ class TreeView extends ScrollView
|
||||
@content: (rootView) ->
|
||||
@div class: 'tree-view tool-panel', tabindex: -1, =>
|
||||
if rootView.project.getRootDirectory()
|
||||
@subview 'root', new DirectoryView(directory: rootView.project.getRootDirectory(), isExpanded: true)
|
||||
@subview 'root', new DirectoryView(directory: rootView.project.getRootDirectory(), isExpanded: true, project: rootView.project)
|
||||
|
||||
@deserialize: (state, rootView) ->
|
||||
treeView = new TreeView(rootView)
|
||||
@@ -66,6 +66,7 @@ class TreeView extends ScrollView
|
||||
@rootView.command 'tree-view:toggle', => @toggle()
|
||||
@rootView.command 'tree-view:reveal-active-file', => @revealActiveFile()
|
||||
@rootView.on 'active-editor-path-change', => @selectActiveFile()
|
||||
@rootView.on 'window:toggle-ignored-files', => @updateRoot()
|
||||
@rootView.project.on 'path-change', => @updateRoot()
|
||||
|
||||
@selectEntry(@root) if @root
|
||||
@@ -122,7 +123,7 @@ class TreeView extends ScrollView
|
||||
updateRoot: ->
|
||||
@root?.remove()
|
||||
if @rootView.project.getRootDirectory()
|
||||
@root = new DirectoryView(directory: @rootView.project.getRootDirectory(), isExpanded: true)
|
||||
@root = new DirectoryView(directory: @rootView.project.getRootDirectory(), isExpanded: true, project: @rootView.project)
|
||||
@append(@root)
|
||||
else
|
||||
@root = null
|
||||
|
||||
Reference in New Issue
Block a user