Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sublimetext3 在Sublime文本中编写自动完成插件_Sublimetext3_Sublime Text Plugin - Fatal编程技术网

Sublimetext3 在Sublime文本中编写自动完成插件

Sublimetext3 在Sublime文本中编写自动完成插件,sublimetext3,sublime-text-plugin,Sublimetext3,Sublime Text Plugin,在我的公司里,我们有一种基于XML的表示法。在其他特性中,可以定义从一个XML文档到另一个XML文档的引用我想在Sublime中启用自动完成功能,这样每当我添加引用时,可能的文件(即同一项目中的XML文件)和链接点(即该文件中的符号)都会作为建议提供。 到目前为止,我已经找到了很多插件,可以支持自动完成,比如说HTML、PHP或LaTeX。然而,我觉得代码库对于一个简单的任务来说太复杂了例如,是否有一些普通函数可以根据作为参数接收的任意数组生成补全?我会创建逻辑来确定什么是符号并派生所述数组,但

在我的公司里,我们有一种基于XML的表示法。在其他特性中,可以定义从一个XML文档到另一个XML文档的引用我想在Sublime中启用自动完成功能,这样每当我添加引用时,可能的文件(即同一项目中的XML文件)和链接点(即该文件中的符号)都会作为建议提供。

到目前为止,我已经找到了很多插件,可以支持自动完成,比如说HTML、PHP或LaTeX。然而,我觉得代码库对于一个简单的任务来说太复杂了例如,是否有一些普通函数可以根据作为参数接收的任意数组生成补全?我会创建逻辑来确定什么是符号并派生所述数组,但整个过程对我来说似乎有些麻烦


(需要注意的是:我可以用Python编程,还可以使用其他高级功能,比如代码片段,但这些包似乎比感觉需要的复杂得多。)

创建completions条目的基础并不复杂。现在需要用正确的值填充数组(这可以通过项目设置或解析其他文件来完成)

导入升华
导入升华插件
#您的数组,其中包含完成项
arr=[“foo”、“bar”、“baz”]
类MyCompletionsListener(升华插件.EventListener):
查询完成时的定义(自身、视图、前缀、位置):
loc=位置[0]
#限制您的完成范围
如果不查看。分数选择器(loc,“文本”):
返回
完成=[(v+“\t您的描述”,v)表示arr中的v]
返回完成

OP注释:答案如广告所示。然而,集成是如此无缝,以至于有一段时间我认为缺少了一些东西。如果上面的Python脚本位于右侧文件夹中,则会建议使用completions数组返回的所有补全(根据升华设置,可能需要使用
Ctrl+Space
触发补全菜单)。还值得注意的是:

  • completions
    可以是
    None
    ,在这种情况下,它们只是不添加任何补全选项或一个2元组数组,其中第一个元素是描述(将显示在下拉菜单中并触发补全),第二个是值(即,如果选择了补全,将输入的文本).
  • score\u选择器
    方法可用于确定光标位置是否在给定的
    范围内