//Conflicts with this script:EventRenameTabItemCount https://resource.dopus.com/t/item-count-in-tab-name/43276/4 //Conflicts with this script:Tab-Labelizer https://resource.dopus.com/t/tab-labelizer-extend-the-folder-names-shown-in-your-tabs/18075 function OnInit(initData) { initData.name = 'ShowTabIndex'; initData.version = '2024-02-22'; initData.copyright = ''; initData.url = 'https://resource.dopus.com/t/showtabindex-show-the-position-index-number-in-folder-tab-name/49276'; initData.desc = 'Add the index of folder tab to the beginning of tab name'; initData.default_enable = true; initData.min_version = '12.0'; } /* function OnOpenTab(openTabData) { //DOpus.Output('*** OnOpenTab'); AppendTabIndex(openTabData.tab); } function OnCloseTab(closeTabData) { //DOpus.Output('*** OnCloseTab'); AppendTabIndex(closeTabData.tab); } */ function OnActivateTab(activateTabData) { //DOpus.Output('*** OnActivateTab'); AppendTabIndex(activateTabData.newtab); } function OnAfterFolderChange(afterFolderChangeData) { //DOpus.Output('*** OnAfterFolderChange'); if (afterFolderChangeData.result) AppendTabIndex(afterFolderChangeData.tab); } var cmd = DOpus.Create().Command(); var fsu = DOpus.FSUtil(); var Letters = "-ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //tab.lister.tabsleft tab.lister.tabsright tab.right tab.displayed_label function AppendTabIndex(tab) { if (tab.right) tabs = tab.lister.tabsright; else tabs = tab.lister.tabsleft; var Index = 0; for (var e = new Enumerator(tabs); !e.atEnd(); e.moveNext()) { var path = e.item().path; if(DOpus.TypeOf(path) == "empty") break;//关闭标签时可能导致当前处理的标签正式已关闭的标签,其path为undefined,会报错 //DOpus.Output((Index+1) + " -path: " + DOpus.TypeOf(path) + " / " + path); var driveLetter = ""; var tabName = String(path); if (tabName != "") { var drive = path.drive; if (drive) driveLetter = Letters[drive] + ":"; //::开头的是此电脑、回收站等; 桌面是/desktop; coll://是文件收集; lib://是库; ftp://, 这些都需要fsu.DisplayName解析 tabName = fsu.DisplayName(tabName); var newPath = fsu.NewPath(tabName) if (tabName.substring(0, 4) == 'lib:') tabName = "lib:" + newPath.filepart; else if (tabName.substring(0, 5) == 'coll:') tabName = "coll:" + newPath.filepart; else if (tabName.substring(0, 4) == 'ftp:') tabName = "ftp:" + newPath.filepart; else tabName = newPath.filepart; //DOpus.Output("tabName3:" + tabName); } var tabIndex = String(++Index)+":"; var newTabName = tabIndex + driveLetter + tabName; cmd.SetSourceTab(e.item());//may error;关闭标签时可能导致当前处理的标签正式已关闭的标签,导致此行报错 cmd.RunCommand('Go TABNAME="' + newTabName + '"'); } }