代码操作
clice 已注册 textDocument/codeAction 支持,但目前始终返回空列表。本页记录预期范围。
快速修复
从附加到 clang / clang-tidy 诊断的 FixItHint 派生的操作。
- 将编译器
FixItHint作为快速修复应用 - 应用 clang-tidy 修复建议
-
source.fixAll— 批量应用文件中所有可用修复(clangd#1446) - 一次操作修复同类诊断的所有出现(clangd#830)
- 应用编辑位于主文件之外的修复(clangd#1747)
- 遵守客户端代码操作能力(
isPreferred、resolve 支持)(clangd#573) - 可选对代码操作编辑应用格式化(clangd#2476)
Include 操作
- 为未解析的符号添加缺失的
#include(clangd#1017) - 使用项目相对路径而非绝对路径插入 include(clangd#2010)
- 可配置的 include 样式 — 引号 vs. 尖括号(clangd#1367)
- 移除未使用的
#include(include-cleaner) - 遵守 IWYU pragma(
export、keep、private) - 建议
using声明作为限定未解析符号的替代(clangd#976) - C 文件:建议
<stdlib.h>而非<cstdlib>(clangd#2246)
重构
光标/选区驱动的重构操作。
提取
- 提取变量(clangd#446)
- 提取变量应替换表达式的所有出现(clangd#924)
- 宏参数中的变量提取(clangd#1197)
- 提取函数/方法(clangd#698)
- 提取函数应保留占位返回类型(
auto)(clangd#653) - 提取函数不得引入脱糖类型(clangd#1496)
- 提取函数须处理在外层作用域定义的类型(clangd#1710)
- C 文件的函数提取(clangd#1810)
内联 / 展开
- 内联变量/函数
- 展开
auto/ 推导类型 - 展开宏一层(clangd#820)
移动 / 定义
- 将方法体移到类外(out-of-line)
- 将方法体移到声明处(inline)
- 从声明生成缺失的方法定义(clangd#445)
- 从类外定义生成缺失的声明(clangd#2454、clangd#730)
变换
- 添加
using声明(clangd#73) - 将
using namespace替换为就地限定名称(clangd#1067) - 移除不必要的类型限定符(clangd#1619)
- 交换
if/else分支(clangd#466) - 填充
switch分支(clangd#807) - 转换为原始字符串字面量
- 从使用处创建声明(clangd#467)
- 移除函数/方法(clangd#2580)
- 修改函数参数并更新所有调用点(clangd#460)
- 修复声明/定义签名不匹配(clangd#77)
- 为基类纯虚方法生成存根(clangd#1037)
- 交换二元运算操作数
- 将无作用域枚举转换为有作用域枚举
- 生成逐成员构造函数
- 声明隐式的拷贝/移动特殊成员函数
- 重命名符号(作为代码操作)
- Include-cleaner:批量修复未使用/缺失的 include
变更记录
| 日期 | 变更 | PR |
|---|---|---|
| — | 存根处理器(始终返回空列表) | — |