在 Cursor 中强制使用微软 C/C++ 插件方法
在 Cursor 中强制使用微软 C/C++ 插件方法
最近要写Qt, 但是clangd对qt的支持真的是一眼难尽, 而且windows主要用msvs, 一些msvc的专有语法clangd也无法识别, 但是微软的C/C++插件只能用在VsCode上, 否则会提示:
C/C++ 扩展只能用于 Microsoft Visual Studio、Visual Studio for Mac、Visual Studio Code、Azure DevOps、Team Foundation Server 以及后续的 Microsoft 产品和服务,以开发和测试您的应用程序。
限制原理
在新的C/C++插件中, 检查是否为VsCode并不在插件源码中, 而是闭源的 cpptools.exe 检查的
LSP initialize 传入 cpptools.exe 后, 如果不严格等于 Visual Studio Code 后cpptools会直接报错, 所以只能想办法让cpptools认为自己是VsCode
社区解决方案
经过搜索后找到了这一个扩展: cpptools-proxy-patcher
它的原理很简单, 首先它重命名 cpptools.exe 为 cpptools-orig.exe , 然后下载一个 cpptools-proxy 的二进制文件, 将其替换掉cpptools.exe
cpptools-proxy 负责将请求转发给原始的 cpptools-orig.exe , 同时修改请求头, 让cpptools-orig.exe认为自己是VsCode
这样就可以在Cursor中使用微软的C/C++插件了
在 Cursor 中强制使用微软 C/C++ 插件方法
https://simonkimi.github.io/posts/20260827072005/