4

我在这个插件上工作

使用包控制安装插件时,语法高亮不适用于 Sublime Text 3。

Error loading syntax file "Sublime Text 3/Installed Packages/robot.tmLanguage": Unable to open Sublime Text 3/Installed Packages/robot.tmLanguage

该插件位于内部存档Installed Packcages/Robot Framework Assistant.sublime-package中的文件“robot.tmLanguage”下。Robot Framework Assistant.sublime-package

这是我设置路径的 方式https://github.com/andriyko/sublime-robot-framework-assistant/blob/master/rfassistant/init .py

我的问题与此线程类似,但在我的情况下,插件安装为存档(.sublime-package)而不是带有文件的文件夹。

  1. 我不确定我上面提到的路径设置在 python3 中是否正确。

  2. 如何引用 .sublime-package 文件中的 tmLanguage 文件?

  3. 我应该把那个文件放在哪里?完全令人困惑,为什么它可以在 Sublime Text 2 和 Sublime Text 3 上工作(当从 github 安装到 dir 时)但在通过 Package Control 安装时不起作用。

那么,如何设置 tmLanguage 文件的路径以及应该将其存储在哪里。只是想澄清一下,当从 github zip 文件安装插件时它工作正常(因为我把它的内容放在 Packages 目录下的 RobotFrameworkAssistant 文件夹中)。通过包控制安装插件时它不起作用。

4

3 回答 3

4

.tmLanguage我根据其他人的建议添加自定义文件的手动解决方案的快速总结:

  1. myLang.tmLanguage文件放入具有所需语法名称的文件夹中。
  2. 压缩文件夹,使其命名myLang.zip
  3. 将 zip 存档重命名为myLang.sublime-package
  4. 放入myLang.sublime-packageSublime 3 packages 文件夹。它现在将出现在 sublime 语法突出显示菜单中。

基于 ST3 文档,我现在似乎找不到这种手动方法的替代方法,但它会起作用。

包控制可能会在幕后完成您需要的一切

于 2015-04-10T17:05:33.920 回答
3

您需要 tmLanguage 文件的内容吗?如果是这样,您不应该直接访问它。相反,您应该使用sublime.load_resource(name),其中 name 类似于Packages/Robot Framework Assistant/robot.tmLanguage. 如果您只是尝试设置文件语法,则应该使用view.set_syntax_file(syntax_file),其中syntax_file类似于资源的名称。我没有详细查看您的插件,所以如果这两个答案都不正确,请说明您要做什么。

作为旁注,基于该错误,您可能还会在 ST2 中看到问题。您只是在查看根包文件夹,而不是在您的包中。

在 ST3 中,jps 决定使插件可以从.sublime-package文件中运行,而不是需要被提取。这些文件只是重命名的.zip文件。如果您在插件中访问资源,则确实需要进行更新,但 API 已被扩展以支持它。

这不是一个很好的列表,但它涵盖了 ST3 与 ST2 的一些变化。

http://www.sublimetext.com/docs/3/porting_guide.html

于 2013-12-05T02:13:06.043 回答
2

问题似乎解决了。请参阅此修复程序

为什么我在 ST3 中的语法设置(.tmLanguage)有问题?

因为它完全令人困惑,并且从 ST3 文档中不清楚该文件应该放在哪里。(即使它说Packages如果在 中找不到文件,则在目录中继续查找文件Installed Packages)。

目录下有两个“主”文件夹Sublime Text 3Installed PackagesPackages.

当使用 Package Control 安装插件时,它会进入Installed Packages打包到名为 like 的存档文件中的目录Robot Framework Assistant.sublime-package(实际上是 ZIP 文件)。该robot.tmLanguage文件(语法文件)位于Robot Framework Assistant.sublime-package.

所以,简而言之,我的问题是:如何引用该文件(应该为view.set_syntax_file方法提供什么路径)?

不直观,但我应该参考不存在的路径Packages/Robot Framework Assistant/robot.tmLanguage。实际上,就我而言,该Packages目录仅包含Users文件夹。我能猜到的唯一一件事是文件夹名称应该与包名称相同(Robot Framework Assistant在我的情况下)。

于 2013-12-05T19:58:06.957 回答