diff --git a/src/extensions/tree-view/spec/tree-view-spec.coffee b/src/extensions/tree-view/spec/tree-view-spec.coffee index f63f7c950..299636013 100644 --- a/src/extensions/tree-view/spec/tree-view-spec.coffee +++ b/src/extensions/tree-view/spec/tree-view-spec.coffee @@ -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 diff --git a/src/extensions/tree-view/src/directory-view.coffee b/src/extensions/tree-view/src/directory-view.coffee index d68c42602..2e09e7857 100644 --- a/src/extensions/tree-view/src/directory-view.coffee +++ b/src/extensions/tree-view/src/directory-view.coffee @@ -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) diff --git a/src/extensions/tree-view/src/tree-view.coffee b/src/extensions/tree-view/src/tree-view.coffee index eb8c55720..c5d762650 100644 --- a/src/extensions/tree-view/src/tree-view.coffee +++ b/src/extensions/tree-view/src/tree-view.coffee @@ -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