含义启用正确的语法和错误突出显示以及建议。我不是通过 Kate 构建我的程序,只是编辑代码。
当我尝试在 Kate 中编写以下内容时(在名为 main.cpp 的文件中,Kate 使用 c++ 语法突出显示等,但它必须使用较旧的语言版本):
#include <filesystem>
//stuff
std::filesystem::path path;
,我收到错误:[clang](无成员)命名空间“std”中没有名为“文件系统”的成员,这与如果我尝试在不更改语言的情况下使用 std::filesystem 时 Visual Studio 给出的错误几乎相同设置为 c++17(或更高版本)。但是,我不知道如何在 Kate 中更改为 c++17 语法突出显示,或者是否可能。
我检查了文档并用谷歌搜索,并检查了我能找到的 stackoverflow 上的所有结果,并浏览了所有菜单,但我对使用 Kate 的了解还不够,无法弄清楚如何启用 c++不幸的是,我自己在 Kate 里掌握了 17 种语言。
编辑:在设置 > 配置 Kate > LSP 客户端 > 默认服务器设置中显示:
"servers": {
...
"c": {
"command": ["clangd", "-log=error", "--background-index", "--limit-results=500", "--completion-style=bundled"],
"commandDebug": ["clangd", "-log=verbose", "--background-index"],
"url": "https://clang.llvm.org/extra/clangd/",
"highlightingModeRegex": "^(C|ANSI C89|Objective-C)$"
},
"cpp": {
"use": "c",
"highlightingModeRegex": "^(C\\+\\+|ISO C\\+\\+|Objective-C\\+\\+)$"
},
我知道这个问题已经在这里存在了一段时间了,但是,根据SO中的这个答案或这个答案,您需要将
-std=c++17
添加到clangd
命令,如下所示:
"cpp": {
"use": "c",
"command": ["clangd", "-log=error", "--background-index",
"--limit-results=500", "--completion-style=bundled",
"-std=c++17"],
"highlightingModeRegex": "^(C\\+\\+|ISO C\\+\\+-23|Objective-C\\+\\+)$"
},
我希望它有效。