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
:输出编译结果的文件,默认使用webview
Options
:编译选项,点击右侧按钮可以打开输入框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
。
另外 Output 窗口可能会提供一些有用的信息,可以注意检索