diff --git a/spec/pane-view-spec.coffee b/spec/pane-view-spec.coffee index 2df5aa68c..e8311b482 100644 --- a/spec/pane-view-spec.coffee +++ b/spec/pane-view-spec.coffee @@ -118,6 +118,27 @@ describe "PaneView", -> paneModel.activateItem(view2) expect(pane.itemViews.find('#view-2').length).toBe 1 + describe "when the new activeItem implements ::getPath", -> + beforeEach -> + paneModel.activateItem(editor1) + + it "adds its file path to the active pane", -> + expect(pane).toHaveAttr('data-active-item-path') + + it "adds its file name to the active pane", -> + expect(pane).toHaveAttr('data-active-item-name') + + describe "when the new activeItem does not implement ::getPath", -> + beforeEach -> + paneModel.activateItem(editor1) + paneModel.activateItem(document.createElement('div')) + + it "removes its file path from the active pane", -> + expect(pane).not.toHaveAttr('data-active-item-path') + + it "removes its file name from the active pane", -> + expect(pane).not.toHaveAttr('data-active-item-name') + describe "when an item is destroyed", -> it "triggers the 'pane:item-removed' event with the item and its former index", -> itemRemovedHandler = jasmine.createSpy("itemRemovedHandler") diff --git a/src/pane-element.coffee b/src/pane-element.coffee index f5bfc18bd..2f0481829 100644 --- a/src/pane-element.coffee +++ b/src/pane-element.coffee @@ -71,6 +71,14 @@ class PaneElement extends HTMLElement hasFocus = @hasFocus() itemView = atom.views.getView(item) + if itemPath = item.getPath?() + path = require 'path' + @dataset.activeItemName = path.basename(itemPath) + @dataset.activeItemPath = itemPath + else + delete @dataset.activeItemName + delete @dataset.activeItemPath + unless @itemViews.contains(itemView) @itemViews.appendChild(itemView) callAttachHooks(itemView)