我正在处理这个plugin
使用包控件安装插件时,语法高亮显示不适用于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 Framework Assistant.sublime-package
档案内的文件'robot.tmLanguage'。
以下是我设置路径的方法 https://github.com/andriyko/sublime-robot-framework-assistant/blob/master/rfassistant/init.py
我的问题类似于this thread,但在我的情况下,插件安装为存档(.sublime-package)而不是文件夹。
我不确定上面提到的路径设置在python3中是否正确。
如何引用.sublime-package文件中的tmLanguage文件?
我应该把该文件放在哪里?令人困惑的是,为什么它适用于Sublime Text 2和Sublime Text 3(当从github安装到dir中时),但是当通过Package Control安装时不起作用。
那么,我如何设置tmLanguage文件的路径以及我应该在哪里存储它。只是想澄清一下,当从github zip文件安装插件时它工作正常(因为我把它的内容放到Packages目录下的RobotFrameworkAssistant文件夹中)。通过Package Control安装插件时,它不起作用。
答案 0 :(得分:4)
基于其他人添加自定义.tmLanguage
文件的手动解决方案的快速摘要'建议:
myLang.tmLanguage
文件放入具有所需语法的文件夹中
名称myLang.zip
myLang.sublime-package
myLang.sublime-package
放入Sublime 3 packages文件夹。它现在将出现在sublime语法高亮菜单中。基于ST3文档,我现在似乎无法找到此手动方法的替代方法,但它可以正常工作。
Package control可能会完成幕后所需的一切
答案 1 :(得分: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已经过扩展以支持它。
这不是一个很好的列表,但它涵盖了ST2中ST3的一些变化。
答案 2 :(得分:2)
这个问题似乎已经解决了。请参阅此fix。
为什么我在ST3中遇到语法设置(.tmLanguage)问题?
因为ST3文档中应该找到该文件,所以它完全令人困惑且不清楚。
(即使它表示如果在Packages
中找不到文件,则在Installed Packages
目录中继续进行文件查找。
Sublime Text 3
目录下有两个“主要”文件夹:Installed Packages
和Packages
。
当使用Package Control安装插件时,它进入Installed Packages
目录,打包到名为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
)。