我正在开发一个KomodoIDE/KomodoEdit扩展,它创建一个新文件,然后使用以下命令在新的编辑选项卡中打开它
...
var obsvc = Components.classes["@mozilla.org/observer-service;1"].
getService(Components.interfaces.nsIObserverService);
...
Display.initWithPath(Target.path);
Display.append(what);
try {
obsvc.notifyObservers(null, 'open-url', "file://" + Display.path);
} catch (e) {
alert(e);
}这是可行的,但我也希望它将Komodo的默认目录设置为与此文件所在的目录相同的目录,但我没有看到一种自动执行此操作的方法。
我找到了doCommand..。
ko.commands.doCommand('cmd_openDirectory')但这只会启动一个文件对话框,要求用户选择一个目录。我想做一些事情来编程地设置它,使用像这样的东西...
obsvc.notifyObservers(null, 'open-directory', "file://" + Display.path);(我知道这不起作用,但这是我的想法)。
发布于 2014-09-05 01:33:50
nsIFile接口提供了以下功能:
// Get current working directory
var file = Components.classes["@mozilla.org/file/directory_service;1"].
getService(Components.interfaces.nsIProperties).
get("CurProcD", Components.interfaces.nsIFile);Komodo首选项服务也是一种选择:
var gprefs = Components.classes["@activestate.com/koPrefService;1"].
getService(Components.interfaces.koIPrefService).prefs;
gprefs.setStringPref("mruDirectory", "Display.path);参考
发布于 2014-12-24 00:25:27
我刚刚发现ko.places.manager对象有一个函数可以设置默认的Places窗口窗格目录。下面是我如何使用它的一个例子。uri应该设置为完整的目录路径,在Windows的情况下,反斜杠应该转义...
function SetPlace(ko, uri) {
try {
ko.places.manager.openDirURI("file:///" + uri.replace(/\\/g, "\\\\") );
} catch(e) {
alert("Could not set place to: " + uri.replace(/\\/g, "\\\\") + "\n" + e);
}
}https://stackoverflow.com/questions/25014462
复制相似问题