Parse initial column from path to open argument

This commit is contained in:
Kevin Sawicki 2014-04-30 11:28:10 -07:00
parent 27b02a7981
commit 1367f08de8
3 changed files with 14 additions and 12 deletions

View File

@ -301,10 +301,12 @@ class AtomApplication
# :windowDimensions - Object with height and width keys.
openPath: ({pathToOpen, pidToKillWhenClosed, newWindow, devMode, windowDimensions}={}) ->
if pathToOpen
[basename, initialLine] = path.basename(pathToOpen).split(':')
if initialLine
pathToOpen = "#{path.dirname(pathToOpen)}/#{basename}"
initialLine -= 1 # Convert line numbers to a base of 0
[basename, initialLine, initialColumn] = path.basename(pathToOpen).split(':')
pathToOpen = "#{path.dirname(pathToOpen)}/#{basename}" if initialLine
# Convert line numbers to a base of 0
initialLine -= 1 if initialLine
initialColumn -= 1 if initialColumn
unless devMode
existingWindow = @windowForPath(pathToOpen) unless pidToKillWhenClosed or newWindow
@ -320,7 +322,7 @@ class AtomApplication
bootstrapScript ?= require.resolve('../window-bootstrap')
resourcePath ?= @resourcePath
openedWindow = new AtomWindow({pathToOpen, initialLine, bootstrapScript, resourcePath, devMode, windowDimensions})
openedWindow = new AtomWindow({pathToOpen, initialLine, initialColumn, bootstrapScript, resourcePath, devMode, windowDimensions})
if pidToKillWhenClosed?
@pidsToOpenWindows[pidToKillWhenClosed] = openedWindow

View File

@ -20,7 +20,7 @@ class AtomWindow
isSpec: null
constructor: (settings={}) ->
{@resourcePath, pathToOpen, initialLine, @isSpec, @exitWhenDone} = settings
{@resourcePath, pathToOpen, initialLine, initialColumn, @isSpec, @exitWhenDone} = settings
global.atomApplication.addWindow(this)
@browserWindow = new BrowserWindow show: false, title: 'Atom', icon: @constructor.iconPath
@ -47,7 +47,7 @@ class AtomWindow
@browserWindow.loadUrl @getUrl(loadSettings)
@browserWindow.focusOnWebView() if @isSpec
@openPath(pathToOpen, initialLine)
@openPath(pathToOpen, initialLine, initialColumn)
getUrl: (loadSettingsObj) ->
# Ignore the windowState when passing loadSettings via URL, since it could
@ -113,12 +113,12 @@ class AtomWindow
@browserWindow.on 'blur', =>
@browserWindow.focusOnWebView()
openPath: (pathToOpen, initialLine) ->
openPath: (pathToOpen, initialLine, initialColumn) ->
if @loaded
@focus()
@sendCommand('window:open-path', {pathToOpen, initialLine})
@sendCommand('window:open-path', {pathToOpen, initialLine, initialColumn})
else
@browserWindow.once 'window:loaded', => @openPath(pathToOpen, initialLine)
@browserWindow.once 'window:loaded', => @openPath(pathToOpen, initialLine, initialColumn)
sendCommand: (command, args...) ->
if @isSpecWindow()

View File

@ -27,9 +27,9 @@ class WindowEventHandler
@subscribe $(window), 'blur', -> $("body").addClass('is-blurred')
@subscribe $(window), 'window:open-path', (event, {pathToOpen, initialLine}) ->
@subscribe $(window), 'window:open-path', (event, {pathToOpen, initialLine, initialColumn}) ->
unless fs.isDirectorySync(pathToOpen)
atom.workspaceView?.open(pathToOpen, {initialLine})
atom.workspaceView?.open(pathToOpen, {initialLine, initialColumn})
@subscribe $(window), 'beforeunload', =>
confirmed = atom.workspaceView?.confirmClose()