49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
// RESET //
|
|
var codeRanOnce = false;
|
|
var tryTreeViewCloseInterval = null;
|
|
var tryTreeViewCloseIntervalCount = 0;
|
|
|
|
|
|
// EXECUTE CODE WHEN WORKSPACE IS OPENED //
|
|
atom.workspace.onDidOpen(function({item}){
|
|
// make sure the code doesn't run twice
|
|
if(codeRanOnce) return;
|
|
|
|
// remember that the code ran once
|
|
codeRanOnce = true;
|
|
|
|
// schedule multiple tries to close the tree-view
|
|
tryTreeViewClose();
|
|
tryTreeViewCloseInterval = setInterval(tryTreeViewClose, 100);
|
|
});
|
|
|
|
|
|
// TRY TO CLOSE THE TREE-VIEW //
|
|
tryTreeViewClose = function(){
|
|
// get tree-view element
|
|
var 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) return;
|
|
|
|
// check whether tree view contains projects
|
|
var 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
|
|
let treeViewSettings = atom.packages.config.settings["tree-view"] ?? {};
|
|
let hiddenOnStartup = treeViewSettings.hiddenOnStartup ?? false;
|
|
if(hiddenOnStartup || !treeViewHasProjects){
|
|
treeView.hide();
|
|
}
|
|
|
|
// stop trying
|
|
clearInterval(tryTreeViewCloseInterval);
|
|
}
|