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

Commit

Permalink
3.1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
guyutongxue committed Sep 9, 2021
1 parent 275406a commit 71dc9be
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 4 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# 更新日志 Change Log

## \[3.1.2\]
*2021.9.10*

- 添加 CLI 中丢失的 `--compile-arg` 选项;
- CLI 中增加新手模式 `-n`

## \[3.1.1\]
*2021.9.9*

Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.18.0)

project(vscch3 VERSION 3.1.1)
project(vscch3 VERSION 3.1.2)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Expand Down
31 changes: 31 additions & 0 deletions mac_user_guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# VSCodeConfigHelper Mac 用户指南

## 下载工具

前往[工具主页](https://vscch3.vercel.app)下载此工具;然后,解压它;得到一个 `VSCodeConfigHelper_v3.x.x_mac` 文件夹。

[启动终端应用程序](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>。(即输入了以下命令:
```shell
cd /Users/.../Downloads/VSCodeConfigHelper_v3.x.x_mac
```
。或者,如果你启用了在文件夹内打开终端的服务,你可以直接在该文件夹下打开终端。)

## 首次设置

在终端中键入 `./vscch` 并按回车。第一次启动时会提示因安全原因无法运行。此时打开苹果图标,定位到“系统偏好设置”-“安全性与隐私”,在“通用”选项卡的下方对 `vscch` 程序点击“仍然允许”。

再次尝试启动工具,键入以下命令并按回车:
```shell
./vscch -n -w ~/Desktop/Cpp
```
注意这里 `-w` 后面是你要配置的工作区文件夹路径,这里使用了 `~/Desktop/Cpp`,即桌面下的 `Cpp` 文件夹。`-n` 选项表明启用新手模式。关于新手模式以及更多选项可通过 `./vscch -h` 查看。

> 若使用新手模式,为了更好的体验,建议在终端的菜单栏中定位到“终端”-“偏好设置”-“Shell”,将“当Shell退出时”设置为“关闭窗口”。
如果工具显示 `未安装 Xcode Command Line Tools,将进行安装` 的提示,则按照屏幕说明操作。安装 Xcode Command Line Tools 需要几分钟到数十分钟不等。安装完成后,再次执行上述命令来继续配置。

## 配置完成

工具配置完成后,若为新手模式(或带有 `--open-vscode` 选项),则工具会自动启动 VS Code 并打开工作区文件夹。尝试在该文件夹下编译、运行或调试 C++。

**注意** Mac 并不支持内置终端。换而言之,不论是否启用 `--external-console` 进行配置,运行和调试时都会弹出终端窗口。但 `--external-console` 会使用更加美观的暂停脚本。若不使用 `--external-console`,则“当Shell退出时”不能设置为“关闭窗口”:否则运行时无法观察到程序输出结果。
27 changes: 26 additions & 1 deletion src/cli.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ void init(int argc, char** argv) {
ADD_OPTION_C("install-chinese", ShouldInstallL10n, "为 VS Code 安装中文语言包");
ADD_OPTION_C("offline-cpptools", OfflineInstallCCpp, "离线安装 C/C++ 扩展");
ADD_OPTION_C("uninstall-extensions", ShouldUninstallExtensions, "卸载多余的 VS Code 扩展");
ADD_OPTION_C("compile-arg,a", CompileArgs, "指定编译选项");
// ADD_OPTION_C("generate-test", GenerateTestFile, "");
#ifdef WINDOWS
ADD_OPTION_C("apply-nonascii-check", ApplyNonAsciiCheck,
Expand All @@ -222,12 +223,20 @@ void init(int argc, char** argv) {

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

Expand All @@ -246,10 +255,26 @@ void init(int argc, char** argv) {
options.UseGui = true;
}
#endif
if (newbieMode) {
options.AssumeYes = true;
options.UseExternalTerminal = true;
options.ShouldInstallL10n = true;
options.OfflineInstallCCpp = true;
options.ShouldUninstallExtensions = true;
options.OpenVscodeAfterConfig = true;
options.CompileArgs = {"-Wall", "-Wextra"};
#ifdef WINDOWS
options.ApplyNonAsciiCheck = true;
if (Native::isGbkCp()) {
options.CompileArgs.emplace_back("-fexec-charset=GBK");
}
#endif
}
preprocessOptions(allOpts);

if (parseError) {
LOG_ERR("命令行参数存在错误:", *parseError);
std::exit(1);
}
Native::checkSystemVersion();

Expand Down
16 changes: 14 additions & 2 deletions src/generator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,13 @@ std::string Generator::generateTestFile() {
}
LOG_INF("正在生成测试文件 ", filepath, "...");
const std::string compileHotkeyComment{
"按下 "s + (options.UseExternalTerminal ? "F6" : "Ctrl + F5") + " 编译运行。"};
"按下 "s + (options.UseExternalTerminal ? "F6" :
#ifdef MACOS
"⌃ F5"
#else
"Ctrl + F5"
#endif
) + " 编译运行。"};
const std::string compileResultComment{"按下 "s +
(options.UseExternalTerminal
? "F6 后,您将在弹出的"
Expand All @@ -460,7 +466,13 @@ std::string Generator::generateTestFile() {
oss << '\n';
oss << c(compileHotkeyComment) << '\n';
oss << c("按下 F5 编译调试。") << '\n';
oss << c("按下 Ctrl + Shift + B 编译,但不运行。") << '\n';
oss << c("按下 "
#ifdef MACOS
"⌘ ⇧ B"
#else
"Ctrl + Shift + B"
#endif
" 编译,但不运行。") << '\n';
if (isCpp) {
oss << R"(
#include <iostream>
Expand Down

0 comments on commit 71dc9be

Please sign in to comment.