核心器
为C和C++提供的代码导航和真正智能的Sublime Text插件。
详细信息
安装数量
- 总数 365
- Win 3
- Mac 357
- Linux 5
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 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
README
核心器
核心器是Sublime Text的C和C++插件,通过不断解析和索引项目文件来跨源文件提供代码智能。因为核心器实际上是开始编译代码,但在生成代码之前停止,所以它反映了程序的真正状态和结构。
核心器处于早期原型阶段,我们正在努力提高稳定性、可扩展性和便携性。目前,核心器仅在OSX上可用,其他主要平台的支持正在开发中。我还没有开发出一个好的测试框架,所以任何反馈都将非常感激!
目录
功能
开放定义
右键单击任何方法、字段、类等的引用并选择“打开定义”命令,即可跳转到该引用的定义,即使它在另一个源文件中定义。请注意,在C或C++中,定义与声明不同。在包含引用的每个文件中必须有声明,而所有源文件中必须只有一个唯一的定义。
示例
在main.cpp
文件中包含Foo.h
以声明Foo
的some_method
方法,并在Foo.cpp
中定义了它。
在任何some_method
处右键单击以调用“打开定义”。
“打开定义”将打开Foo.cpp
并突出显示some_method
的定义。
列出引用
在任意定义或引用上都可以调用“列出引用”命令,这将在菜单中列出所有引用。突出显示一个引用将导航到项目中它的位置。
示例
在Baz
的方法some_method
上调用“列出引用”。请注意,对some_method
的任何引用调用“列出引用”都将是相同的。
找到的第一个引用在main.cpp
中。在这里我们可以看到,Ceer能够推断出表达式((Baz*)&myFoo)
的编译时类型。实际上,它应该能够对任何有效表达式执行与编译器相同的类型推断。
找到的第二个引用在Baz
的方法another_baz_method
中。
展开超类
可以在任何C++类的定义或引用上调用“展开超类”命令,并在菜单中显示类的继承层次结构。
示例
对Foo
调用“展开超类”。与“列出引用”类似,我们也可以对Foo
的引用调用“展开超类”。
Foo
继承自Base
,而Base
没有从任何其他类继承。
Baz
有一个更有趣的继承结构。
Baz
直接从Foo
和Bar
继承,这两个类都继承自Base
。注意,在菜单中,超类按广度优先搜索顺序显示,并被缩进到其在继承层次结构中的级别。
展开子类
自然地,“展开子类”命令的运作方式与“展开超类”命令相同,但它显示继承自所选类的类。
示例
对Base
调用“展开子类”。
这张图看起来与我们在Baz
上调用“展开超类”时相似,但顺序相反,因为我们是从继承层次结构的顶部向下看,而不是从底部向上看。
展开包含
在任何文件的任何位置右键单击并选择“展开包含”命令将显示该文件是否直接或间接包含的所有文件。包含的文件按深度优先搜索排序,并根据间接性缩进。
示例
对Baz.h
调用“展开包含”。
Baz.h
包含了Foo.h
和Bar.h
,这两个文件都包含了Base.h
。请注意,Base.h
被缩进,因为它不是直接包含在Baz.h
中的。
列出包含者
“列出包含者”显示了一个菜单,列出了调用命令的文件所包含的所有文件。类似于“展开包含”命令,文件按深度优先搜索排序,并根据间接性缩进。
示例
对Foo.h
调用“列出包含者”。
Baz.h
、Foo.cpp
和main.cpp
都直接包含了Foo.h
。Baz.cpp
间接包含了Foo.h
,因为它包含了Baz.h
。
诊断
如果将.sublime-project
文件中的enable_diagnostics
选项设置为true
,Ceer将显示与编译器相同的错误和警告。将光标移动到诊断中的任何位置将在窗口底部的Sublime状态栏中显示一个摘要。可以使用“在项目中查看问题”或“在文件中查看问题”命令分别在一个菜单中查看项目或单个文件中的所有命令。
示例
a_private_field
在Foo.h
中声明为private
。在Baz
中尝试访问它将产生错误“a_private_field
是Foo
的私有成员”。
选择“在项目中查看问题”命令或对Baz.h
调用“在文件中查看问题”命令将在菜单中显示错误。
在选择菜单中的错误后,将跳转到错误。
设置
目前,Ceer处于原型阶段,并且仅适用于OSX。计划支持其他平台。
安装
插件管理
Ceer可在Package Control中找到。
克隆
目前,唯一安装的方法是通过直接将Ceer仓库克隆到~/Library/Application Support/Sublime Text 3/Packages
。
$ cd ~/Library/Application Support/Sublime Text 3/Packages
$ git clone [email protected]:andylamb/Ceer.git
或
$ cd ~/Library/Application Support/Sublime Text 3/Packages
$ git clone https://github.com/andylamb/Ceer.git
快速开始
- 使用“项目 > 保存项目为...”创建一个
.sublime-project
文件。 - 在侧边栏的任何位置右键单击并选择“构建索引”。
配置
Ceer需要一个.sublime-project
文件来了解哪些文件需要解析和索引。要创建一个.sublime-project
文件,请转到“项目 >另存为项目...
编译命令
为了生成与源代码最忠实的表现,Ceer可以解析CMakeLists.txt
或Makefile
并使用相同的编译命令。要启用此功能,在.sublime-project
文件中,在ceer
部分下,设置cmakelists_path
或makefile_path
。请注意,“ceer”部分将在首次调用“构建索引”时自动创建。
诊断
可以通过在.sublime-project
文件的ceer
部分中使用diagnostics_enabled
来控制诊断。