Compiler Explorer 是一个非常流行的 C++ 在线编译器,可用于测试不同的编译执行环境,或者分享代码。作为一个 C++ 爱好者,我几乎每天都要和它打交道,使用频率之高远超我的想象。同时,我也是一个重度 VSCode 用户,几乎所有的事情都在 VSCode 中完成。考虑到经常在本地写代码然后拷贝到 Compiler Explorer 上去,总觉得不太舒服,有时候直接就在它的网页编辑器上改了,但是又没有代码补全,也不舒服。所以我和 @iiirhe 合作编写了这个插件 Compiler Explorer for VSCode,基于 Compiler Explorer 提供的 API 将 Compiler Explorer 集成到 VSCode 中,使得用户可以在 VSCode 中直接使用 Compiler Explorer 的功能。
现在你可以在 VSCode 插件市场搜索到这个插件

效果展示 #

单文件支持 #

让我们从上往下以此介绍

这个三个按钮的功能依次是:
Compile All:编译所有的编译器实例Add New:添加一个新的编译器实例Share Link:根据当前的编译器实例生成一个链接,并复制到剪贴板

这四个按钮的功能依次是:
Add CMake:添加一个 CMake 编译器实例(后面会细说)Clear All:关闭所有用于展示的webview面板Load Link:根据输入的链接加载编译器实例的信息Remove All:删除所有的编译器实例

这个三个按钮的功能依次是:
Run:编译这个编译器实例Clone:克隆这个编译器实例Remove:删除这个编译器实例
下面这些用于设置编译器实例的参数:
Compiler:点击右侧的按钮可以选择编译器版本Input:选择源代码文件,默认是active即当前活跃的编辑器Output:输出编译结果的文件,默认使用webviewOptions:编译选项,点击右侧按钮可以打开输入框Execute Arguments:传递给可执行文件的参数Stdin:用于标准输入的缓冲区Filters:一些选项
多文件支持 #
使用Add CMake按钮可以添加一个 CMake 编译器实例,这个实例可以用于编译多个文件。

大部分选项和单文件的编译器实例一样,额外多出了两个
CMake Arguments:传递给 CMake 的参数Source:CMakelists.txt 所在的文件夹路径
注意,由于多文件编译需要把所有用到的文件都上传到服务器,所以我们默认会读取你指定的目录下的所有文件(无论后缀名),所以目前请不要指定文件数量过多的文件夹。之后可能会添加一些选项允许用户过滤掉一些文件,但是目前还没有。
一些用户设置 #
compiler-explorer.default.options:使用+号创建编译器时的默认参数
"compiler-explorer.default.options": {
"type": "object",
"description": "The default compiler configuration",
"default": {
"compiler": "x86-64 gcc 13.2",
"language": "c++",
"options": "-std=c++17",
"exec": "",
"stdin": "",
"cmakeArgs": "",
"src": "workspace",
"filters": {
"binaryObject": false,
"binary": false,
"execute": false,
"intel": true,
"demangle": true,
"labels": true,
"libraryCode": true,
"directives": true,
"commentOnly": true,
"trim": false,
"debugCalls": false
}
}
}
compiler-explorer.default.color:用于指定高亮汇编代码时的颜色
"compiler-explorer.default.color":{
"symbol": "#61AFEF",
"string": "#98C379",
"number": "#D19A66",
"register": "#E5C07B",
"instruction": "#C678DD",
"comment": "#7F848E",
"operator": "#ABB2BF"
}
compiler-explorer.default.url:用于打开插件时默认加载的链接,默认是空
"compiler-explorer.default.url": {
"default": ""
}
问题反馈 #
该插件还处于早期阶段,如果你在使用过程中遇到了问题,或者有任何建议,欢迎在 GitHub 上留言讨论。或者添加 QQ 群:662499937。
https://qm.qq.com/q/DiO6rvnbHi (二维码自动识别)
另外 Output 窗口可能会提供一些有用的信息,可以注意检索
