mirror of
https://github.com/atom/atom.git
synced 2026-01-24 22:38:20 -05:00
When a buffer's file name changes, its tabs are updated
This commit is contained in:
@@ -2,6 +2,7 @@ $ = require 'jquery'
|
||||
_ = require 'underscore'
|
||||
RootView = require 'root-view'
|
||||
Tabs = require 'tabs'
|
||||
fs = require 'fs'
|
||||
|
||||
describe "Tabs", ->
|
||||
[rootView, editor, statusBar, buffer, tabs] = []
|
||||
@@ -67,3 +68,18 @@ describe "Tabs", ->
|
||||
expect(editor.getActiveEditSessionIndex()).toBe 0
|
||||
tabs.find('.tab:eq(1)').click()
|
||||
expect(editor.getActiveEditSessionIndex()).toBe 1
|
||||
|
||||
describe "when a file name associated with a tab changes", ->
|
||||
[buffer, newPath] = []
|
||||
|
||||
beforeEach ->
|
||||
buffer = editor.editSessions[0].buffer
|
||||
oldPath = buffer.getPath()
|
||||
newPath = oldPath.replace(/sample.js$/, "foobar.js")
|
||||
|
||||
afterEach ->
|
||||
fs.remove(newPath)
|
||||
|
||||
fit "updates the file name in the tab", ->
|
||||
buffer.saveAs(newPath)
|
||||
expect(tabs.find('.tab:first .file-name')).toHaveText "foobar.js"
|
||||
|
||||
11
src/extensions/tabs/src/tab.coffee
Normal file
11
src/extensions/tabs/src/tab.coffee
Normal file
@@ -0,0 +1,11 @@
|
||||
{View} = require 'space-pen'
|
||||
|
||||
module.exports =
|
||||
class Tab extends View
|
||||
@content: (editSession) ->
|
||||
@div class: 'tab', =>
|
||||
@div editSession.buffer.getBaseName(), class: 'file-name', outlet: 'fileName'
|
||||
|
||||
initialize: (@editSession) ->
|
||||
@editSession.on 'buffer-path-change.tab', =>
|
||||
@fileName.text(@editSession.buffer.getBaseName())
|
||||
@@ -1,5 +1,6 @@
|
||||
$ = require 'jquery'
|
||||
{View, $$} = require 'space-pen'
|
||||
{View} = require 'space-pen'
|
||||
Tab = require 'tabs/src/tab'
|
||||
|
||||
module.exports =
|
||||
class Tabs extends View
|
||||
@@ -32,9 +33,7 @@ class Tabs extends View
|
||||
@editor.setActiveEditSessionIndex($(e.target).closest('.tab').index())
|
||||
|
||||
addTabForEditSession: (editSession) ->
|
||||
@append $$ ->
|
||||
@div class: 'tab', =>
|
||||
@div editSession.buffer.getBaseName(), class: 'file-name'
|
||||
@append(new Tab(editSession))
|
||||
|
||||
setActiveTab: (index) ->
|
||||
@find(".tab.active").removeClass('active')
|
||||
|
||||
Reference in New Issue
Block a user