mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-19 23:17:16 +03:00
Pass persisted window sessions as foldersToOpen
This commit is contained in:
parent
02e1ae4b0f
commit
1ecff536c7
@ -210,6 +210,7 @@ class AtomApplication extends EventEmitter {
|
||||
const {
|
||||
pathsToOpen,
|
||||
executedFrom,
|
||||
foldersToOpen,
|
||||
urlsToOpen,
|
||||
benchmark,
|
||||
benchmarkTest,
|
||||
@ -248,9 +249,10 @@ class AtomApplication extends EventEmitter {
|
||||
timeout,
|
||||
env
|
||||
})
|
||||
} else if (pathsToOpen.length > 0) {
|
||||
} else if (pathsToOpen.length > 0 || foldersToOpen.length > 0) {
|
||||
return this.openPaths({
|
||||
pathsToOpen,
|
||||
foldersToOpen,
|
||||
executedFrom,
|
||||
pidToKillWhenClosed,
|
||||
devMode,
|
||||
@ -806,6 +808,7 @@ class AtomApplication extends EventEmitter {
|
||||
//
|
||||
// options -
|
||||
// :pathsToOpen - The array of file paths to open
|
||||
// :foldersToOpen - An array of additional paths to open that must be existing directories
|
||||
// :pidToKillWhenClosed - The integer of the pid to kill
|
||||
// :devMode - Boolean to control the opened window's dev mode.
|
||||
// :safeMode - Boolean to control the opened window's safe mode.
|
||||
@ -814,6 +817,7 @@ class AtomApplication extends EventEmitter {
|
||||
// :addToLastWindow - Boolean of whether this should be opened in last focused window.
|
||||
openPaths ({
|
||||
pathsToOpen,
|
||||
foldersToOpen,
|
||||
executedFrom,
|
||||
pidToKillWhenClosed,
|
||||
devMode,
|
||||
@ -825,8 +829,10 @@ class AtomApplication extends EventEmitter {
|
||||
addToLastWindow,
|
||||
env
|
||||
} = {}) {
|
||||
if (!pathsToOpen || pathsToOpen.length === 0) return
|
||||
if (!env) env = process.env
|
||||
if (!pathsToOpen) pathsToOpen = []
|
||||
if (!foldersToOpen) foldersToOpen = []
|
||||
|
||||
devMode = Boolean(devMode)
|
||||
safeMode = Boolean(safeMode)
|
||||
clearWindowState = Boolean(clearWindowState)
|
||||
@ -837,6 +843,22 @@ class AtomApplication extends EventEmitter {
|
||||
hasWaitSession: pidToKillWhenClosed != null
|
||||
})
|
||||
})
|
||||
|
||||
for (const folderToOpen of foldersToOpen) {
|
||||
locationsToOpen.push({
|
||||
pathToOpen: folderToOpen,
|
||||
initialLine: null,
|
||||
initialColumn: null,
|
||||
mustBeDirectory: true,
|
||||
forceAddToWindow: addToLastWindow,
|
||||
hasWaitSession: pidToKillWhenClosed != null
|
||||
})
|
||||
}
|
||||
|
||||
if (locationsToOpen.length === 0) {
|
||||
return
|
||||
}
|
||||
|
||||
const normalizedPathsToOpen = locationsToOpen.map(location => location.pathToOpen).filter(Boolean)
|
||||
|
||||
let existingWindow
|
||||
@ -966,7 +988,7 @@ class AtomApplication extends EventEmitter {
|
||||
const states = await this.storageFolder.load('application.json')
|
||||
if (states) {
|
||||
return states.map(state => ({
|
||||
pathsToOpen: state.initialPaths,
|
||||
foldersToOpen: state.initialPaths,
|
||||
urlsToOpen: [],
|
||||
devMode: this.devMode,
|
||||
safeMode: this.safeMode
|
||||
|
Loading…
Reference in New Issue
Block a user