Skip to content
This repository was archived by the owner on Dec 10, 2022. It is now read-only.

Commit 71dc9be

Browse files
committed
3.1.2
1 parent 275406a commit 71dc9be

File tree

5 files changed

+78
-4
lines changed

5 files changed

+78
-4
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# 更新日志 Change Log
22

3+
## \[3.1.2\]
4+
*2021.9.10*
5+
6+
- 添加 CLI 中丢失的 `--compile-arg` 选项;
7+
- CLI 中增加新手模式 `-n`
8+
39
## \[3.1.1\]
410
*2021.9.9*
511

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.18.0)
22

3-
project(vscch3 VERSION 3.1.1)
3+
project(vscch3 VERSION 3.1.2)
44

55
set(CMAKE_CXX_STANDARD 20)
66
set(CMAKE_CXX_STANDARD_REQUIRED ON)

mac_user_guide.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# VSCodeConfigHelper Mac 用户指南
2+
3+
## 下载工具
4+
5+
前往[工具主页](https://vscch3.vercel.app)下载此工具;然后,解压它;得到一个 `VSCodeConfigHelper_v3.x.x_mac` 文件夹。
6+
7+
[启动终端应用程序](https://support.apple.com/zh-cn/guide/terminal/apd5265185d-f365-44cb-8b09-71a064a42125/mac)。键入 `cd `(<kbd>c</kbd><kbd>d</kbd><kbd>空格</kbd>),然后将刚才的文件夹拖入终端内,最后按下回车 <kbd>return</kbd>。(即输入了以下命令:
8+
```shell
9+
cd /Users/.../Downloads/VSCodeConfigHelper_v3.x.x_mac
10+
```
11+
。或者,如果你启用了在文件夹内打开终端的服务,你可以直接在该文件夹下打开终端。)
12+
13+
## 首次设置
14+
15+
在终端中键入 `./vscch` 并按回车。第一次启动时会提示因安全原因无法运行。此时打开苹果图标,定位到“系统偏好设置”-“安全性与隐私”,在“通用”选项卡的下方对 `vscch` 程序点击“仍然允许”。
16+
17+
再次尝试启动工具,键入以下命令并按回车:
18+
```shell
19+
./vscch -n -w ~/Desktop/Cpp
20+
```
21+
注意这里 `-w` 后面是你要配置的工作区文件夹路径,这里使用了 `~/Desktop/Cpp`,即桌面下的 `Cpp` 文件夹。`-n` 选项表明启用新手模式。关于新手模式以及更多选项可通过 `./vscch -h` 查看。
22+
23+
> 若使用新手模式,为了更好的体验,建议在终端的菜单栏中定位到“终端”-“偏好设置”-“Shell”,将“当Shell退出时”设置为“关闭窗口”。
24+
25+
如果工具显示 `未安装 Xcode Command Line Tools,将进行安装` 的提示,则按照屏幕说明操作。安装 Xcode Command Line Tools 需要几分钟到数十分钟不等。安装完成后,再次执行上述命令来继续配置。
26+
27+
## 配置完成
28+
29+
工具配置完成后,若为新手模式(或带有 `--open-vscode` 选项),则工具会自动启动 VS Code 并打开工作区文件夹。尝试在该文件夹下编译、运行或调试 C++。
30+
31+
**注意** Mac 并不支持内置终端。换而言之,不论是否启用 `--external-console` 进行配置,运行和调试时都会弹出终端窗口。但 `--external-console` 会使用更加美观的暂停脚本。若不使用 `--external-console`,则“当Shell退出时”不能设置为“关闭窗口”:否则运行时无法观察到程序输出结果。

src/cli.cpp

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ void init(int argc, char** argv) {
200200
ADD_OPTION_C("install-chinese", ShouldInstallL10n, "为 VS Code 安装中文语言包");
201201
ADD_OPTION_C("offline-cpptools", OfflineInstallCCpp, "离线安装 C/C++ 扩展");
202202
ADD_OPTION_C("uninstall-extensions", ShouldUninstallExtensions, "卸载多余的 VS Code 扩展");
203+
ADD_OPTION_C("compile-arg,a", CompileArgs, "指定编译选项");
203204
// ADD_OPTION_C("generate-test", GenerateTestFile, "");
204205
#ifdef WINDOWS
205206
ADD_OPTION_C("apply-nonascii-check", ApplyNonAsciiCheck,
@@ -222,12 +223,20 @@ void init(int argc, char** argv) {
222223

223224
// other options that cannot be parsed directly
224225
std::string languageText;
225-
std::string modeText;
226+
bool newbieMode;
226227
// clang-format off
227228
configOpt.add_options()
228229
("language", po::value<std::string>(&languageText)->default_value("c++"), "指定配置目标语言。可为 c++ 或 c")
229230
("generate-test", "强制生成测试文件")
230231
("no-generate-test", "不生成测试文件")
232+
("newbie-mode,n", po::bool_switch(&newbieMode)->default_value(false), "启用新手模式。这相当于以下选项:"
233+
"--assume-yes --verbose --external-terminal --install-chinese"
234+
" --offline-cpptools --uninstall-extensions --open-vscode"
235+
" -a-Wall -a-Wextra"
236+
#ifdef WINDOWS
237+
" --apply-nonascii-check"
238+
#endif
239+
)
231240
;
232241
// clang-format on
233242

@@ -246,10 +255,26 @@ void init(int argc, char** argv) {
246255
options.UseGui = true;
247256
}
248257
#endif
258+
if (newbieMode) {
259+
options.AssumeYes = true;
260+
options.UseExternalTerminal = true;
261+
options.ShouldInstallL10n = true;
262+
options.OfflineInstallCCpp = true;
263+
options.ShouldUninstallExtensions = true;
264+
options.OpenVscodeAfterConfig = true;
265+
options.CompileArgs = {"-Wall", "-Wextra"};
266+
#ifdef WINDOWS
267+
options.ApplyNonAsciiCheck = true;
268+
if (Native::isGbkCp()) {
269+
options.CompileArgs.emplace_back("-fexec-charset=GBK");
270+
}
271+
#endif
272+
}
249273
preprocessOptions(allOpts);
250274

251275
if (parseError) {
252276
LOG_ERR("命令行参数存在错误:", *parseError);
277+
std::exit(1);
253278
}
254279
Native::checkSystemVersion();
255280

src/generator.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,13 @@ std::string Generator::generateTestFile() {
440440
}
441441
LOG_INF("正在生成测试文件 ", filepath, "...");
442442
const std::string compileHotkeyComment{
443-
"按下 "s + (options.UseExternalTerminal ? "F6" : "Ctrl + F5") + " 编译运行。"};
443+
"按下 "s + (options.UseExternalTerminal ? "F6" :
444+
#ifdef MACOS
445+
"⌃ F5"
446+
#else
447+
"Ctrl + F5"
448+
#endif
449+
) + " 编译运行。"};
444450
const std::string compileResultComment{"按下 "s +
445451
(options.UseExternalTerminal
446452
? "F6 后,您将在弹出的"
@@ -460,7 +466,13 @@ std::string Generator::generateTestFile() {
460466
oss << '\n';
461467
oss << c(compileHotkeyComment) << '\n';
462468
oss << c("按下 F5 编译调试。") << '\n';
463-
oss << c("按下 Ctrl + Shift + B 编译,但不运行。") << '\n';
469+
oss << c("按下 "
470+
#ifdef MACOS
471+
"⌘ ⇧ B"
472+
#else
473+
"Ctrl + Shift + B"
474+
#endif
475+
" 编译,但不运行。") << '\n';
464476
if (isCpp) {
465477
oss << R"(
466478
#include <iostream>

0 commit comments

Comments
 (0)