Package Control

The official Sublime Text package manager.

CppAssistant

Sublime Text 4 C++ assistant: smart STL completions, Chinese diagnostics, goto-def, jiangly formatting

By chenmoulaile
Created August 26, 2026, last updated October 17, 2026.

SepAugJulJunMayAprMarFebJan Dec2025 NovOct 2026-W43 | installs: 1 | removals: 1 | upgrades: 0 2026-W43 | installs: 1 | removals: 1 | upgrades: 0 2026-W43 | installs: 1 | removals: 1 | upgrades: 0 2026-W42 | installs: 0 | removals: 0 | upgrades: 0 2026-W42 | installs: 0 | removals: 0 | upgrades: 0 2026-W42 | installs: 0 | removals: 0 | upgrades: 0 024 WeeklyInstalls 024 WeeklyUpgrades 2026-W42 | upgrades: 0 1.7.0 2026-W40 1.6.2 2026-W39 1.6.1 / 1.6.0 / ... 1.6.1 / 1.6.0 / 1.5.2 / 1.5.1 / 1.5.0 / 1.4.1 / 1.4.0 2026-W36 1.3.4 / 1.3.2 / ... 1.3.4 / 1.3.2 / 1.3.1 / 1.3.0 2026-W35 1.2.3 / 1.2.2 / ... 1.2.3 / 1.2.2 / 1.2.1 / 1.2.0 / 1.1.0 / 1.0.0
Installations: 1 in total
Installations minus removals
Upgrades

Links

Versions

1.7.0 (>ST4000) ·
2026-10-17 01:22

More

CppAssistant —— Sublime Text 4 C++ 辅助插件(内嵌真实 clangd 引擎 + 全汉化)

C++ assistance for Sublime Text 4 with a real clangd engine embedded. The plugin ships a minimal LSP client that drives clangd directly (no LSP framework required) for compiler-grade semantic completions, and falls back to a pure-Python built-in database when clangd is not present, so it works out of the box. The UI, comments and defaults are English-first; Chinese is kept as an optional diagnostic display mode.

Features

Installation

Every command is available from the Command Palette; type CppAssistant: to list them. No key bindings are registered by default.

Key settings

Setting Default Description
display_language "en" Diagnostic text: en, zh, or both
clangd_completion_wait_ms 0 0 never blocks the editor; raise it to wait for clangd
cxx_standard "c++14" Standard used for checks and completions
lint_engine "compiler" compiler (g++/clang++) or clangd
enable_clangd_engine true Use the real clangd engine

Detailed documentation follows in Chinese below.

v1.4.0 起内置移植 LSP-clangd:插件自带最小 LSP 客户端,直接驱动真实的 clangd 语言服务器(无需安装 LSP 主框架),补全达到编译器级语义准确度;同时保留纯 Python 内置数据库兜底,零配置可用。诊断信息完整中文化。

v1.5.0 补全力度对齐 LSP-clangd:智能头文件插入(补全被接受时自动补 #include <vector>,已有 bits/stdc++.h 万能头则不插)、悬停文档(鼠标悬停显示 clangd 类型/文档)、函数签名提示(光标在调用括号内显示重载签名)。

为 C++ 提供 LSP-clangd 同级体验:真实 clangd 语义补全 / 智能头文件插入 / 悬停文档 / 函数签名提示 / 中文语法检查 / F12 跳转定义 / jiangly 码风格式化。 开箱即用:有 clangd 就用真引擎,没有就自动回退内置数据库。

性能(与 LSP-clangd 对比)

操作 LSP-clangd 本插件
结构性错误反馈(括号、全角标点、未闭合字符串) 200~500ms(依赖 LSP 调度) < 10ms(纯 Python 即时检查)
完整语义检查(含 PCH) 冷启动 13s,热路径 200500ms 冷启动 0.5~1s,热路径 < 300ms
补全响应(命中缓存) 5~20ms < 1ms
补全响应(未命中缓存) 50~200ms < 5ms(内置 130+ STL 函数 + 31 类容器成员)
多次编辑(相同文本) 重新检查 零延迟复用(内容哈希 + 设置签名缓存)

性能优化关键点:

  1. 多级缓存:词法状态行表、类型环境、用户符号、补全结果、语法诊断全部带版本缓存
  2. stdin 传递源码:编译器检查通过 stdin 传入源码,不创建任何临时 .cpp 文件
  3. 过期进程立即终止:新一次检查开始时立即 kill 旧进程,绝不排队
  4. PCH 直接挂载:使用 -include ca_pch.h 命令行选项挂载预编译头
  5. 正则预编译:所有正则表达式在模块加载时编译,热路径零开销
  6. 字典代替正则分支:标准符号匹配走 O(1) 字典查找

功能特性

1. 智能代码补全(v1.4.0 起默认真实 clangd 引擎)

补全引擎(enable_clangd_engine,默认开启):

2. 悬停文档与函数签名提示(v1.5.0 新增)

3. 实时语法检查(报错信息全中文,三级加速)

4. F12 跳转定义

搜索顺序:当前文件 → 同窗口已打开文件 → 当前文件目录及 include_paths 下的本地头文件(递归跟随 #include "...")。 多个候选时弹出快速面板选择;本地未找到时回退到 Sublime 内置符号索引。

5. jiangly 码风格式化

安装

方式一:Package Control(推荐)

本插件已提交官方频道收录审核(sublimehq/package_control_channel#9536), 合并后即可直接:Ctrl+Shift+P → Package Control: Install Package → 搜索 CppAssistant。

审核期间可用添加仓库方式:

  1. Ctrl+Shift+P → Package Control: Add Repository
  2. 输入:https://github.com/chenmoulaile/Sublime-CppAssistant
  3. Ctrl+Shift+P → Package Control: Install Package → 选择 CppAssistant

若 Add Repository 下载失败(GitHub 网络原因),请用方式二/三。

方式二:git clone

cd "%APPDATA%\Sublime Text\Packages"        # Windows(菜单 Preferences → Browse Packages 可定位)
git clone https://github.com/chenmoulaile/Sublime-CppAssistant CppAssistant

Linux/macOS 目录为 ~/.config/sublime-text/Packages。目录名建议用 CppAssistant。

方式三:手动下载

下载本仓库 ZIP,解压到 Packages 目录下并重命名为 CppAssistant,重启 Sublime Text。

快捷键(可选,默认不注册)

为避免覆盖其他包的键位,本插件默认不绑定任何快捷键,全部命令可在命令面板搜索 CppAssistant: 使用:

命令 功能
CppAssistant: 跳转到定义 光标符号跳转到定义(本地找不到时回退内置索引)
CppAssistant: 按 jiangly 码风格式化文档 整个文档格式化(也可开启 format_on_save)
CppAssistant: 显示语法诊断面板 中文语法诊断列表

如需快捷键,把 Default (Windows).sublime-keymap 中注释掉的条目复制到 Preferences → Key Bindings 的 User 文件即可,推荐键位: F12 跳转定义 · Shift+Alt+F 格式化 · Ctrl+Alt+D 诊断面板。

配置

打开设置的方式:

  1. 菜单 Preferences → Package Settings → CppAssistant 下选择 Settings – Default(默认设置)/ Settings – User(用户设置)/ Key Bindings – User(用户快捷键)
  2. 命令面板搜索 首选项: CppAssistant 设置 / 首选项: CppAssistant 快捷键
  3. 直接编辑 Packages/User/CppAssistant.sublime-settings

用户设置会覆盖默认设置,无需修改默认文件。

配置项 默认 说明
enable_completions true 智能补全开关
enable_clangd_style_completion true 补全模式:true LSP-clangd 风格(默认,宽松模糊匹配)/ false 严格前缀基础模式(仅前缀匹配)
auto_insert_includes true 智能头文件插入:补全被接受时自动补 #include <X>(已有 bits/stdc++.h 万能头或该头已包含则跳过)
enable_hover true 悬停文档:鼠标悬停显示 clangd 类型/文档弹窗
enable_signature_help true 函数签名提示:光标在调用括号内显示重载签名
enable_linting true 实时语法检查开关
lint_engine "compiler" 诊断引擎:compiler 后台 g++/clang++ 完整检查 / clangd LSP 式实时诊断(与 LSP-clangd 同源,不再启动编译器)
instant_basic_check true 即时基础检查(毫秒级括号/全角标点/字符串检测)
lint_debounce 0.1 停止输入多少秒后开始编译器完整检查(删除错误行后基本即时清除)
lint_timeout 12 编译器单次检查超时(秒),超时不清空已有标记
enable_pch true PCH 预编译头加速(bits/stdc++.h)
show_phantoms true 错误行下方显示提示条
display_language "en" 诊断信息显示语言: en 仅英文(默认)/ zh 仅中文 / both 中英双语
cxx_standard "c++14" 语法检查与补全使用的标准(CSP-S / NOIP 考 c++14;需要 C++20/23 特性时自行调高)
compiler_path "" 编译器路径,留空自动查找 g++ / clang++
compiler_extra_args [] 额外编译参数
include_paths [] 额外头文件目录(同时用于跳转定义)
format_on_save false 保存时自动格式化
clang_format_path "" clang-format 路径,留空自动查找
indent_width 4 兜底格式化器缩进宽度

诊断显示语言

支持 英文 / 中文 / 中英双语 三种模式(默认英文),可通过以下任一方式切换:

  1. 命令面板 搜索 CppAssistant: Diagnostic Language - ...
  2. 菜单 Preferences → Package Settings → CppAssistant → Diagnostic language
  3. 手动编辑 Packages/User/CppAssistant.sublime-settings 里的 display_language 字段:
    {
        "display_language": "en"     // 仅英文 (默认)
        // "display_language": "zh"   // 仅中文
        // "display_language": "both" // 中英双语, 形如 "use of foo(未声明的标识符 'foo')"
    }
    

切换后即时生效:诊断条目本身同时保存中英文两种文本,语言只在渲染时选定,因此切换不会重跑编译器检查,只重渲染状态栏、诊断面板与幽灵提示条。

翻译覆盖范围

诊断翻译表覆盖 280+ 条常见 gcc / clang 诊断消息,包括:

英文模式下会保留 gcc/clang 原始报错信息,方便复制搜索;中文模式适合日常学习;双语模式适合教学/对比。

更新日志

v1.7.0(全部文案与默认语言改为英文)

v1.6.1(补全短名显示 + zip 包菜单兼容)

v1.6.0(补全提速 + 简洁列表 + clangd 诊断引擎模式)

v1.5.2(修复 ST 4213 stable 补全整体失效)

v1.5.1(修复 clangd 引擎未真正接管补全)

v1.5.0(补全力度对齐 LSP-clangd)

v1.4.1(修复插件无法加载)

v1.4.0(内嵌真实 clangd 引擎)

v1.3.3

v1.3.2

v1.3.1

v1.3.0(LSP-clangd 风格的轻量级汉化优化版)

v1.2.3

v1.2.0

v1.1.0

v1.0.0

常见问题

License

MIT © chenmoulaile

Results

Packages