Eclipse CDT(C++):Organize Imports功能破坏文件头注释求助
Eclipse CDT 2024-06 版本 Organize Imports/Add Include 破坏文件头注释的问题
问题现象
更新至Eclipse CDT 2024-06版本后,执行Organize Imports(Ctrl+Shift+O)或Add Include(Ctrl+Shift+N)时,会破坏文件开头的块注释:
原代码:
/*============================================================================= Copyright(c) 2024, All Rights Reserved. Company Name ==============================================================================*/ #pragma once /**************************** Include Files **************************/ #include <tasks/Recorder/recorder_test.hpp>
执行操作后,注释开头被新插入的#include覆盖,变成:
#include <tasks/Recorder/recorder.hpp> Copyright(c) 2024, All Rights Reserved. Company Name ==============================================================================*/ #pragma once /**************************** Include Files **************************/ #include <tasks/Recorder/recorder_test.hpp>
可能原因
这是2024-06版本CDT的代码分析模块在处理#include插入逻辑时的bug:模块未正确识别文件起始位置的块注释边界,将新的#include错误插入到注释内部,覆盖了注释开头部分。
修复方法
调整Include插入规则
打开Window > Preferences > C/C++ > Code Style > Organize Includes,检查以下设置:- 取消勾选
Insert includes at beginning of file选项(该选项会强制在文件最开头插入include,忽略前置注释) - 配置
Include groups,将include语句的插入位置限定在指定标记之后(比如示例中的/**************************** Include Files **************************/注释标记)
- 取消勾选
重置CDT偏好设置
若自定义设置导致逻辑冲突,可重置CDT相关配置:
进入Window > Preferences > C/C++,点击右上角Restore Defaults按钮,恢复默认配置后重新测试。临时规避方案
执行Organize Imports/Add Include前,手动将需要添加的#include语句插入到指定的Include区域内再执行整理操作;或在文件头注释末尾添加一行空注释(比如//),帮助CDT识别注释边界。提交Bug反馈
若上述方法无效,可向Eclipse CDT项目提交Bug报告,详细描述版本信息、操作步骤及代码示例,推动官方修复该问题。
内容的提问来源于stack exchange,提问作者wdtj
相关产品推荐
相关产品推荐

