2023-05-15 13:30:48 +02:00
|
|
|
## RESET ##
|
2023-05-11 20:23:52 +02:00
|
|
|
codeRanOnce = false
|
2023-05-15 13:30:48 +02:00
|
|
|
tryTreeViewCloseInterval = null
|
|
|
|
tryTreeViewCloseIntervalCount = 0
|
2023-05-11 20:23:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
## EXECUTE CODE WHEN WORKSPACE IS OPENED ##
|
2023-05-15 13:32:49 +02:00
|
|
|
atom.workspace.onDidOpen ({item}) ->
|
2023-05-11 20:23:52 +02:00
|
|
|
# make sure the code doesn't run twice
|
|
|
|
if codeRanOnce then return
|
|
|
|
|
|
|
|
# remember that the code ran once
|
|
|
|
codeRanOnce = true
|
|
|
|
|
2023-08-24 12:11:33 +02:00
|
|
|
# schedule multiple tries to close the tree-view
|
|
|
|
tryTreeViewClose()
|
|
|
|
tryTreeViewCloseInterval = setInterval(tryTreeViewClose, 100)
|
2023-05-15 13:30:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
## TRY TO CLOSE THE TREE-VIEW ##
|
|
|
|
tryTreeViewClose = () ->
|
|
|
|
# get tree-view element
|
|
|
|
treeView = atom.workspace.paneContainerForURI("atom://tree-view")
|
|
|
|
|
|
|
|
# time out after too many tries
|
|
|
|
tryTreeViewCloseIntervalCount++
|
|
|
|
if tryTreeViewCloseIntervalCount >= 20
|
|
|
|
clearInterval(tryTreeViewCloseInterval)
|
|
|
|
return;
|
|
|
|
|
|
|
|
# check if tree-view element exists
|
|
|
|
if !treeView then return;
|
|
|
|
|
2023-08-24 12:11:33 +02:00
|
|
|
# check whether tree view contains projects
|
|
|
|
treeViewHasProjects = (treeView.element.querySelector("ol.tree-view-root") != null)
|
|
|
|
|
|
|
|
# close the tree-view dock when the `Hidden On Startup` setting is activated or when it is empty
|
2024-03-08 22:49:30 +01:00
|
|
|
treeViewSettings = atom.packages.config.settings["tree-view"] ? {}
|
|
|
|
hiddenOnStartup = treeViewSettings.hiddenOnStartup ? false
|
|
|
|
if hiddenOnStartup || !treeViewHasProjects
|
2023-08-24 12:11:33 +02:00
|
|
|
treeView.hide()
|
2023-05-15 13:30:48 +02:00
|
|
|
|
|
|
|
# stop trying
|
|
|
|
clearInterval(tryTreeViewCloseInterval)
|