【问题标题】:Sublime Text plugin API: how to get list of files in project?Sublime Text 插件 API:如何获取项目中的文件列表?
【发布时间】:2014-02-18 15:04:21
【问题描述】:

我正在为 Sublime Text 2/3 编写一个插件,它应该打开多个名称包含特定字符串的文件。

如何获取项目中的文件列表?我在文档中找不到任何相关的 API 函数。我可以用 Python 的os.walk 来做,但它有点慢。另一方面,Sublime 的Ctrl+P 菜单非常快,但我不知道如何从我的插件中访问它的内容。

【问题讨论】:

  • 我不知道任何关于 API 的文档,但是 SideBarEnhancements 插件有 'File: Search Files': 'side_bar_find_files_path_lining' 命令,它在 SideBarEnhancements/SideBar.py 中定义。如果它与您想要的完全相关,您应该检查它。编辑:发送后,我意识到这可能与您想要的不太接近。
  • 我同意。崇高的模糊搜索如此之快,但插件开发人员无法通过 API 访问它,这真是令人讨厌。你有没有发现什么?祝你好运。
  • @Rob 不。我已经放弃了,至少现在是这样。

标签: sublimetext2 sublimetext sublime-text-plugin


【解决方案1】:

在 Sublime Text 3 API 中存在用于获取项目中文件的函数,但存在返回项目相关信息的函数 project_data()。对于文件,您可以像这样编写代码:

project_data = sublime.active_window().project_data()
project_folder = project_data['folders'][0]['path']
# and here os.walk(project_folder )

【讨论】:

  • 是的,这正是我尝试过的,但我对大型项目的性能并不满意。我确定 Sublime 有一个 Ctrl+P 菜单的缓存文件列表,但看起来它没有为此提供访问方法。嗯,也许我应该自己做缓存:)
  • @LONGMAN 您可以通过 ST3 中的window#lookup_symbol_in_indexwindow#lookup_symbol_in_open_filesview#symbols 访问这些符号。
  • 我可以获取项目中的所有索引符号吗?
  • 它甚至无法获取每个文件中使用的符号......不幸的是,窗口和视图方法似乎毫无用处
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
相关资源
最近更新 更多