Clang代码模型
代码模型是IDE的一部分,它理解您编写应用程序时使用的语言。它是Qt Creator提供以下服务的框架
Clang代码模型插件基于Clangd为C++提供了一些服务。
关于Clang代码模型
Clang项目包含了解析C语言族源文件的库。通过警告和错误标记获得的反馈与编译器给出的相同,不是不完整集合或近似值,就像使用内置的Qt Creator代码模型时那样。Clang关注诊断的详细信息,当代码有拼写错误等情况时非常有用。我们通过clangd工具使用这些库,该工具实现了一个LSP服务器。
Clang与C++语言的开发保持一致。在本写作时,它支持C++98/03、C++11、C++14、C++17、C89、C99、Objective-C和Objective-C++。
缺点是,对于大型项目,使用Clang作为代码模型比使用内置代码模型慢。Clang不需要生成对象文件,但它仍然需要解析和分析源文件。对于仅使用STL的小型项目,这相对较快。但对于包含多个文件的大型项目,处理单个文件及其包含的所有文件可能需要一段时间。
Clang代码模型插件现在提供了一些与内置C/C++代码模型相同的服务
- 代码补全
- 语法和语义高亮
- 诊断
- 符号大纲
- 工具提示
- 跟随符号
- 重命名符号
- 查找符号的实例
要使用内置代码模型,请选择 设置 > C++ > clangd,然后取消选中 使用 clangd 复选框。此设置也存在于项目级别,因此您可以通常启用基于 Clang 的服务,但对于某些项目可以关闭它们,反之亦然。
您可以为以下内容配置 Clang 诊断:
- Clang 代码模型(全局或项目级别)
- Clang 工具(全局或项目级别)
Clangd 索引
clangd 的 索引 提供了对查找参考、在光标下跟倾符号和使用定位器等服务的精确和完整的结果,即使是复杂数构也能如此。当您 打开项目 时,clangd 会扫描源文件以生成索引。对于大型项目,这可能需要一段时间,但索引是持久的,并且重新扫描是增量式的,因此关闭和重新启动 Qt Creator 不会丢失任何内容。
要暂时禁用全局索引,请选择 切换进度详情(1),然后在进度条上选择 X。
默认情况下,Qt Creator 为每个项目运行一个 clangd 进程。如果您创建了包含相关项目的会话,您可以指定会话中的项目应由单个 clangd 进程管理。
在 大纲 视图中的文档大纲由 clangd 的文档符号支持提供,这使得结果比以前更加可靠。
另请参阅配置 C++ 代码模型、指定 clangd 设置、指定 Clang 工具设置、使用编译数据库、代码模型 和 Clangd。
©2024 Qt 公司有限公司。包含在此处的文档贡献的版权属于其各自的所有者。提供的文档在自由软件基金会发布并由其规范的 GNU 自由文档许可证版本 1.3 下获得许可。Qt 和相应的标志是芬兰以及/或全球其他地区的 Qt 公司的商标。所有其他商标均为各自所有者的财产。