首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从an扩展名设置Komodo中的默认目录?

如何从an扩展名设置Komodo中的默认目录?
EN

Stack Overflow用户
提问于 2014-07-29 19:41:33
回答 2查看 480关注 0票数 0

我正在开发一个KomodoIDE/KomodoEdit扩展,它创建一个新文件,然后使用以下命令在新的编辑选项卡中打开它

代码语言:javascript
复制
...
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..。

代码语言:javascript
复制
ko.commands.doCommand('cmd_openDirectory')

但这只会启动一个文件对话框,要求用户选择一个目录。我想做一些事情来编程地设置它,使用像这样的东西...

代码语言:javascript
复制
obsvc.notifyObservers(null, 'open-directory', "file://" + Display.path);

(我知道这不起作用,但这是我的想法)。

EN

回答 2

Stack Overflow用户

发布于 2014-09-05 01:33:50

nsIFile接口提供了以下功能:

代码语言:javascript
复制
// Get current working directory

var file = Components.classes["@mozilla.org/file/directory_service;1"].
       getService(Components.interfaces.nsIProperties).
       get("CurProcD", Components.interfaces.nsIFile);

Komodo首选项服务也是一种选择:

代码语言:javascript
复制
    var gprefs = Components.classes["@activestate.com/koPrefService;1"].
      getService(Components.interfaces.koIPrefService).prefs;
    gprefs.setStringPref("mruDirectory", "Display.path);

参考

  • How do I get the path of the project folder
  • Getting Special Files
  • Komodo JS Macro - insert a relative path from the current editor file
  • mruDirectory
  • XPCOM API Reference
  • Komodo Profile Structure
  • Where does Komodo Store File Preferences
  • Getting/Setting a Komodo Preference
票数 0
EN

Stack Overflow用户

发布于 2014-12-24 00:25:27

我刚刚发现ko.places.manager对象有一个函数可以设置默认的Places窗口窗格目录。下面是我如何使用它的一个例子。uri应该设置为完整的目录路径,在Windows的情况下,反斜杠应该转义...

代码语言:javascript
复制
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);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25014462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档