pulsar-tame-tree-view/init-snippet.js

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);
}