包含自动完成
使 C 语言中的#include指令中的.h文件实现自动完成的 Sublime Text 插件
详情
安装
- 总数 3K
- Win 2K
- Mac 365
- Linux 885
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
读我
包含自动完成
这是一个 Sublime Text 插件,它启用在#include指令中的.h文件上进行自动完成。
概要
此插件将尝试完成C文件中#include ""指令的文件名。默认情况下,它会(递归地)在要自动完成的include所在的同一目录中查找,但您可以在.sublime-project文件中设置自定义搜索位置(参见设置)。
当从自动完成建议中选择项时,包含位置相对于的路径被添加到include指令中,包括文件名。例如,假设以下为您的包含位置布局
/include/loctaion/
├── dir1
│ └── include
│ └── x.h
└── dir2
└── include
└── y.h
从自动完成的建议中选择dir1/include/x.h
。
此外,如果在您的#include指令中已经有一个路径,则在搜索.h文件时将考虑该路径。使用相同的包含位置目录布局,自动完成#include "dir1/<...>"
将只在dir1
中查找文件,而不是在dir2
中。
安装
推荐的安装方式是通过Sublime Package Control。
设置
手动设置
要添加插件应查找.h文件的位置,请将以下内容添加到您的.sublime-project文件中
{
"include_autocomplete_settings":
{
"include_locations":
[
{
"path": ".",
"ignore": []
},
{
"path": "<path/to/include/directory>",
"ignore": ["<exclude1>", "<exclude2>", ...]
},
...
]
}
}
“包含位置”键是一个字典列表,每个字典都包含以下键
path
:我们应(递归地)在该目录中查找.h文件的目录。此路径可以是绝对路径或相对路径。在后一种情况下,我们将相对于用于自动完成#ifdef指令的文件的目录进行查找。该变量支持类似片段的变量,例如${project_path}/include
。ignore
:应忽略的相对path
路径列表。
编译数据库
插件还可以考虑编译数据库。当您使用EasyClangComplete来指定编译数据库时,您不需要做任何事情。插件将使用在您的.sublime-project
中的EasyClangComplete设置。为了明确,插件期望的是以下形式的
{
"settings":
{
"ecc_flags_sources":
[
{
"file": "compile_commands.json",
"search_in": "$project_base_path/build"
}
]
}
}
如果此键不存在于"settings"
中,插件还将尝试查找指定compile_commands.json
所在目录的"compile_commands"
键。同样,可能的任意片段变量。为了明确,插件查找的是以下形式的
{
"settings":
{
"compile_commands": "${project_path}/build"
}
}
如果找到编译数据库,并且我们处于头文件中,插件将收集编译数据库中所有可能的包含位置。如果我们处于实现文件中,插件将只添加该特定实现文件的包含目录。如果实现文件不在编译数据库中,将在控制台中打印警告信息,通知您实现文件不在编译数据库中。
没有.sublime-project
文件
如果当前文件没有关联的.sublime-project
文件,或者相关的.sublime-project
文件不包含“include_locations”键,将使用以下默认值
{
"include_autocomplete_settings":
{
"include_locations":
[
{
"path": ".",
"ignore": []
}
]
}
}