Show directory in tab when duplicate names are open

Closes #181
This commit is contained in:
Kevin Sawicki
2013-01-30 15:05:36 -08:00
parent ed824469c1
commit d30532c6aa
3 changed files with 33 additions and 3 deletions

View File

@@ -118,3 +118,21 @@ describe "Tabs", ->
tabs.find('.tab .close-icon:eq(1)').click()
expect(editor.getActiveEditSessionIndex()).toBe 0
expect(editor.activeEditSession).toBe firstSession
describe "when two tabs have the same file name", ->
[tempPath] = []
beforeEach ->
tempPath = '/tmp/sample.js'
fs.write(tempPath, 'sample')
afterEach ->
fs.remove(tempPath) if fs.exists(tempPath)
it "displays the parent folder name after the file name", ->
expect(tabs.find('.tab:eq(0) .file-name').text()).toBe 'sample.js'
rootView.open(tempPath)
expect(tabs.find('.tab:eq(0) .file-name').text()).toBe 'sample.js - fixtures'
expect(tabs.find('.tab:last .file-name').text()).toBe 'sample.js - tmp'
editor.destroyActiveEditSession()
expect(tabs.find('.tab:eq(0) .file-name').text()).toBe 'sample.js'

View File

@@ -1,4 +1,5 @@
{View} = require 'space-pen'
fs = require 'fs'
module.exports =
class Tab extends View
@@ -7,12 +8,14 @@ class Tab extends View
@span class: 'file-name', outlet: 'fileName'
@span class: 'close-icon'
initialize: (@editSession) ->
initialize: (@editSession, @editor) ->
@buffer = @editSession.buffer
@subscribe @buffer, 'path-changed', => @updateFileName()
@subscribe @buffer, 'contents-modified', => @updateModifiedStatus()
@subscribe @buffer, 'saved', => @updateModifiedStatus()
@subscribe @buffer, 'git-status-changed', => @updateModifiedStatus()
@subscribe @editor, 'editor:edit-session-added', => @updateFileName()
@subscribe @editor, 'editor:edit-session-removed', => @updateFileName()
@updateFileName()
@updateModifiedStatus()
@@ -25,4 +28,13 @@ class Tab extends View
@isModified = false
updateFileName: ->
@fileName.text(@editSession.buffer.getBaseName() ? 'untitled')
fileNameText = @editSession.buffer.getBaseName()
if fileNameText?
duplicates = @editor.getEditSessions().filter (session) -> fileNameText is session.buffer.getBaseName()
if duplicates.length > 1
directory = fs.base(fs.directory(@editSession.getPath()))
fileNameText = "#{fileNameText} - #{directory}" if directory
else
fileNameText = 'untitled'
@fileName.text(fileNameText)

View File

@@ -34,7 +34,7 @@ class Tabs extends View
false
addTabForEditSession: (editSession) ->
@append(new Tab(editSession))
@append(new Tab(editSession, @editor))
setActiveTab: (index) ->
@find(".tab.active").removeClass('active')