Open rogeryoungh opened 2 years ago
考虑过,但是放弃了,因为: (1)libclang只支持utf8编码 (2)windows控制台在使用utf8编码时,相关windows api函数不能正确读入用户输入的汉字内容(导致scanf/cin不能正常工作); (3)在教学时或多或少会处理中文输入输出的需求,结合(2)综合考虑,目前在windows下进行C/C++教学时还是使用gbk编码为好。
因此,短期内不会使用clang相关工具
对于编码问题,我有一个可能不切实际的想法。
不用cmd,自己实现一个简易的终端,加一点编码探测,或者让自行选择编码。还可以走的更远,比如输入输出颜色不同,选择粘贴更方便,高亮信息……
可以用llvm-mingw实测,但是缺少string等的高亮支持,,,至于clangd,很悬
clangd 已经具有比较丰富的特性,包括基于整个项目分析的代码补全、代码质量检查、部分修正提示(例如自动补头文件)。
而且 LSP 的形式比较方便前端对接,在 CLion、vscode、甚至 vim 中也可以使用。
一个可能有用的参考 github@cpeditor src/ExtensionsLanguageServer.cpp。