ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

核心器

andylamb Mac ALL

为C和C++提供的代码导航和真正智能的Sublime Text插件。

详细信息

  • 1.0.1
  • github.com
  • github.com
  • 10年前
  • 2小时前
  • 10年前

安装数量

  • 总数 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

源代码
raw.githubusercontent.com

核心器

核心器是Sublime Text的C和C++插件,通过不断解析和索引项目文件来跨源文件提供代码智能。因为核心器实际上是开始编译代码,但在生成代码之前停止,所以它反映了程序的真正状态和结构。

核心器处于早期原型阶段,我们正在努力提高稳定性、可扩展性和便携性。目前,核心器仅在OSX上可用,其他主要平台的支持正在开发中。我还没有开发出一个好的测试框架,所以任何反馈都将非常感激!

目录

  1. 功能
  2. 设置
    1. 安装
    2. 插件管理
    3. 克隆
    4. 快速开始
    5. 配置
    6. 编译命令
    7. 诊断
  3. 贡献

功能

开放定义

右键单击任何方法、字段、类等的引用并选择“打开定义”命令,即可跳转到该引用的定义,即使它在另一个源文件中定义。请注意,在C或C++中,定义与声明不同。在包含引用的每个文件中必须有声明,而所有源文件中必须只有一个唯一的定义。

示例

main.cpp文件中包含Foo.h以声明Foosome_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直接从FooBar继承,这两个类都继承自Base。注意,在菜单中,超类按广度优先搜索顺序显示,并被缩进到其在继承层次结构中的级别。

展开子类

自然地,“展开子类”命令的运作方式与“展开超类”命令相同,但它显示继承自所选类的类。

示例

Base调用“展开子类”。

这张图看起来与我们在Baz上调用“展开超类”时相似,但顺序相反,因为我们是从继承层次结构的顶部向下看,而不是从底部向上看。

展开包含

在任何文件的任何位置右键单击并选择“展开包含”命令将显示该文件是否直接或间接包含的所有文件。包含的文件按深度优先搜索排序,并根据间接性缩进。

示例

Baz.h调用“展开包含”。

Baz.h包含了Foo.hBar.h,这两个文件都包含了Base.h。请注意,Base.h被缩进,因为它不是直接包含在Baz.h中的。

列出包含者

“列出包含者”显示了一个菜单,列出了调用命令的文件所包含的所有文件。类似于“展开包含”命令,文件按深度优先搜索排序,并根据间接性缩进。

示例

Foo.h调用“列出包含者”。

Baz.hFoo.cppmain.cpp都直接包含了Foo.hBaz.cpp间接包含了Foo.h,因为它包含了Baz.h

诊断

如果将.sublime-project文件中的enable_diagnostics选项设置为true,Ceer将显示与编译器相同的错误和警告。将光标移动到诊断中的任何位置将在窗口底部的Sublime状态栏中显示一个摘要。可以使用“在项目中查看问题”或“在文件中查看问题”命令分别在一个菜单中查看项目或单个文件中的所有命令。

示例

a_private_fieldFoo.h中声明为private。在Baz中尝试访问它将产生错误“a_private_fieldFoo的私有成员”。

选择“在项目中查看问题”命令或对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

快速开始

  1. 使用“项目 > 保存项目为...”创建一个.sublime-project文件。
  2. 在侧边栏的任何位置右键单击并选择“构建索引”。

配置

Ceer需要一个.sublime-project文件来了解哪些文件需要解析和索引。要创建一个.sublime-project文件,请转到“项目 >另存为项目...

编译命令

为了生成与源代码最忠实的表现,Ceer可以解析CMakeLists.txtMakefile并使用相同的编译命令。要启用此功能,在.sublime-project文件中,在ceer部分下,设置cmakelists_pathmakefile_path。请注意,“ceer”部分将在首次调用“构建索引”时自动创建。

诊断

可以通过在.sublime-project文件的ceer部分中使用diagnostics_enabled来控制诊断。

贡献

Ceer目前处于原型阶段,我们正在努力提高稳定性、可扩展性和可移植性。非常欢迎问题请求合并!请阅读贡献指南以开始。