Sublime Text(3)插件定义新面板

km6*_*zla 5 sublimetext sublimetext2 sublimetext3 sublime-text-plugin

我看到很多show_panel用这样的args对象调用这个函数:

{
    "keys": ["ctrl+shift+f"],
    "command": "show_panel",
    "args": {"panel": "find_in_files"}
}
Run Code Online (Sandbox Code Playgroud)

我找不到show_panel函数的定义,并开始认为它没有暴露.是否可以定义新面板?

Ner*_* Jr 6

是.这是可能的.
在Sublime Text 2中,基本上你需要的是:

  1. 创建一个输出面板:window.get_output_panel("paneltest"),这返回一个<sublime.View对象>
  2. 启用版本:<sublime.View对象> .set_read_only(False)
  3. 打开缓冲区编辑器:<sublime.View object> .begin_edit(),这返回一个<sublime.Edit对象>
  4. 写入以查看您想要的内容:<sublime.View object> .insert(edit,pt.size(),"Writing ...")
  5. 关闭缓冲区编辑器:<sublime.View object> .end_edit()
  6. 禁用版本:<sublime.View对象> .set_read_only(True)
  7. 显示你的面板:window.run_command("show_panel",{"panel":"output.paneltest"})

要进行测试,请在Sublime的Console View上逐个输入以上行:

pt = window.get_output_panel("paneltest")
pt.set_read_only(False)
edit = pt.begin_edit()
pt.insert(edit, pt.size(), "Writing...")
pt.end_edit(edit)
window.run_command("show_panel", {"panel": "output.paneltest"})
Run Code Online (Sandbox Code Playgroud)

在Sublime Text 3中,不要执行步骤3和5.

  • 如果您不执行步骤3和5,如何在没有编辑变量的情况下在步骤4中写入面板? (2认同)