Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: CI

on:
pull_request:
push:
branches:
- main

permissions:
contents: read

concurrency:
group: ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
unit-and-package:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm test
- run: npm run package
- name: Verify VSIX archive
run: unzip -t mcpp-vscode-*.vsix

extension-host-e2e:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- name: Run Extension Host smoke tests
run: xvfb-run -a npm run test:e2e
15 changes: 9 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,11 @@ TextMate 语法规则提供。
检查可以区分模块可用、PCM 不匹配、模块产物不可用、语言模式错误和一般检查失败。
完整命令及输出会写入 `mcpp` 输出频道。

当 clangd 与编译器不匹配时,**mcpp: 一键配置模块代码提示** 会通过 xlings 自动下载
匹配版本的 llvm-tools(含 clangd),完成后配置 clangd 并刷新状态栏,无需 Reload
Window。非 LLVM 工具链(GCC/MSVC)项目会得到清晰的引导说明,不做自动切换。
**mcpp: 一键配置模块代码提示** 会先读取工具链状态,再显示一次模态确认。确认后,
它可以自动安装 host LLVM、设置 mcpp 全局默认、执行 `mcpp build`,并通过已安装的
xlings 补齐匹配版本的 llvm-tools(含 clangd),最后重新读取 CDB、配置 clangd 和检查
模块状态,无需 Reload Window。项目在 `mcpp.toml` 或 target 中显式固定 GCC/MSVC 时,
一键流程会停止并提示手动处理,绝不修改项目配置或伪装成全局切换成功。

### 自动协调与多根工作区

Expand All @@ -142,8 +144,9 @@ Window。非 LLVM 工具链(GCC/MSVC)项目会得到清晰的引导说明,
状态和可安装版本。
- 安装 mcpp 支持的工具链 spec,或从已安装/系统项中选择全局默认工具链。

安装和修改默认值都需要确认。取消操作不会被当成成功,工具链安装和默认值修改共享
全局互斥锁。
安装和修改默认值都需要确认。取消操作不会被当成成功,工具链安装、默认值修改和构建
共享一个全局互斥锁;一键配置只在开始处确认一次,之后不会弹出工具链选择或“是否刷新
编译数据库”的二次询问。

## 命令

Expand All @@ -160,7 +163,7 @@ Window。非 LLVM 工具链(GCC/MSVC)项目会得到清晰的引导说明,
| **mcpp: 配置 clangd** | 手动重新应用当前 LLVM 工程的 clangd 配置 |
| **mcpp: 刷新编译数据库** | 执行 `mcpp build`,随后重新读取 CDB 并协调 clangd |
| **mcpp: 检查模块支持** | 立即执行 clangd 直接检查并刷新模块状态 |
| **mcpp: 一键配置模块代码提示** | 自动检测匹配 clangd,缺失时通过 xlings 安装 llvm-tools 并配置 |
| **mcpp: 一键配置模块代码提示** | 一次确认后自动安装/切换 host LLVM、执行 `mcpp build`,通过 xlings 补齐匹配 llvm-tools,重载 CDB 并配置 clangd;项目显式固定非 LLVM 工具链时停止 |

## 设置

Expand Down
Loading
Loading