开发工具代码编辑器调试器【免费下载链接】vscode_cangjie项目地址https://gitcode.com/Cangjie/vscode_cangjie点击查看免费下载Cangjie仓颉语言官方为 Visual Studio Code 提供了名为Cangjie的扩展本仓库即其开源实现与 Cangjie SDK 配合后可在 VSCode 中获得完整的开发体验语言服务语法高亮、补全、跳转、诊断等、工程管理、编译构建、可视化调试、格式化、静态检查与代码覆盖率统计。本文以仓库根目录的 README.md 为主线结合仓库源码与中文使用文档系统讲解如何安装配置插件、创建工程、使用语言服务、执行构建与调试并给出源码级的实现佐证帮助开发者快速上手并深入理解该插件的设计。适用版本本仓库对应插件版本 0.36.5见 package.json要求 Visual Studio Code 1.65 及以上版本。插件能力总览从入口文件 src/extensions.ts 可以看出插件激活时依次加载了三大子模块这也是其能力边界的直接体现toolsInstall.registerTomlUtil(); toolsInstall.activate(context); // 工程创建、构建、格式化、静态检查、覆盖率、SDK 管理 launchDap.activate(context); // 调试服务cjdb DAP 适配器 launchServer.activate(context); // 语言服务LSP 客户端语言服务LSP由 src/lsp 实现负责语法高亮、补全、跳转、引用查找、诊断、重命名、大纲、面包屑、签名帮助、类型/调用层次结构等。工程与构建由 src/tools 实现包括创建工程、编译构建、单元测试、三方库导入、SDK 管理、格式化cjfmt、静态检查cjlint、覆盖率cjcov。调试服务DAP由 src/dap 实现提供基于 cjdb/lldb 的可视化调试、反向调试与时间线 UI见 debug-ui。相关模块的详细中文手册位于 docs/summary_cjnative.md下文按 README 的章节顺序展开。环境要求与已知限制VSCode 版本1.65 或更高版本engines.vscode: ^1.65.0见 package.json。Windows 平台限制源码文件名及路径不支持包含中文字符。命名规范源码文件名和路径应遵循 Cangjie 编程规范不建议包含除[0-9a-zA-Z_]之外的字符特殊字符会被替换为。调试平台调试服务当前支持在 Windows 与 Linux 的 VSCode 中安装使用linux_arm64 平台暂时仅支持通过 Remote - SSH 方式操作详见 docs/source_zh_cn/install.md。安装与配置 SDK 路径安装插件与 SDK在 VSCode 扩展市场CtrlShiftX中搜索Cangjie安装名为Cangjie的插件也可以在仓颉下载中心获取 VSIX 后手动安装。下载并安装Cangjie SDK。SDK 提供编译命令cjc、包管理工具cjpm、格式化工具cjfmt等命令行工具。为获得最佳兼容性建议使用与插件相同版本的 SDK。当前插件支持 CangjieLTS 版本如果使用 STS 版本请到对应的 STS 下载页面下载匹配版本的扩展并手动安装。SDK 也可通过插件内置的SDK 配置界面下载部署。插件注册了命令cangjie.sdk.manager.viewConfigure Cangjie SDK其实现位于 src/tools/src/sdkManager/sdk-configuration-view.ts提供 SDK 的选择、保存与删除能力数据保存在插件 globalState 中。SDK 目录结构因平台而异Windows 下包含bin、lib、modules、runtime、third_party、tools及envsetup.bat/envsetup.ps1/envsetup.shLinux 下另有include目录与envsetup.shmacOS 结构与 Linux 基本一致。配置 CJNative 后端插件支持CJNative与CJVM两种后端相关配置项在 package.json 中定义说明如下配置项类型默认值说明Cangjie.Sdk.OptionstringCJNative后端类型可选CJNative或CJVM用于切换编译环境CangjieSdkPath.CJNativeBackendstring空CJNative 后端 SDK 的绝对路径CangjieSdkPath.CJVMBackendstring空CJVM 后端 SDK 的绝对路径仅 LinuxCangjieLSPServer.Argumentsstring[][]Cangjie 语言服务的启动参数CrossLanguage.CppDirectorystring空C 源码目录用于仓颉-C 互操作CangjieLog.Telemetrybooleanfalse是否收集 LSP 崩溃数据上报Cangjie.CodeCheckOnSavebooleanfalse保存文件时自动触发 CodeCheck 静态检查Cangjie.CjpmInstall.Customstring空自定义cjpm install选项Cangjie.Root.Cjpm.Pathstring空自定义工程根目录cjpm.toml路径配置步骤点击左下角齿轮图标 →Settings搜索Cangjie在侧边栏选择Cangjie Language Support。将Cangjie Sdk: Option设为CJNative默认值。在Cangjie Sdk Path: CJNative Backend中输入 CJNative SDK 目录的绝对路径。重启 VSCode使配置生效。源码侧插件监听CangjieSdkPath.CJNativeBackend与CangjieSdkPath.CJVMBackend的配置变更并据此更新 SDK 路径见 src/tools/src/sdkManager/update-sdk.ts。安装验证按CtrlShiftPmacOS 为CommandShiftP打开命令面板执行cangjie: Create Cangjie Project View。若能弹出创建仓颉工程的页面说明 SDK 安装配置成功。创建 Cangjie 工程通过命令面板执行Cangjie: Create Cangjie Project或Cangjie: Create Cangjie Project View命令标识见 src/tools/src/createProject/command.ts前者为命令行向导依次选择后端、模板、路径、输入名称后者为可视化界面选择模板、路径、输入名称后单击 Confirm。相关命令的注册与工程控制器实现位于 src/tools/src/createProject/project-controller.ts 与 view-controller.ts。创建后的工程目录结构如下Project_name开发者输入的名称 ├── src 代码目录 │ └── main.cj 源码文件 └── cjpm.toml 默认的 cjpm.toml 配置文件语言服务插件以当前打开的文件夹作为项目根目录PROJECTROOT仅对该目录下的仓颉源码提供语言服务PROJECTROOT 名称在未显式指定模块名时作为默认模块名。语言服务的关键特性与使用方式如下语法高亮高亮运算符、类、注释、函数、关键字、数字、包名、字符串、变量等元素语法定义见 syntaxes/Cangjie.tmLanguage.jsonscopeName: source.cj。代码补全输入关键字、变量或.时弹出候选用上下方向键选择可能需要切换到系统默认输入法Enter或Tab确认。带参数函数或泛型还提供模块化补齐参数格式化补齐Tab切换下一参数Esc退出。定义跳转Ctrl单击、右键Go to Definition或F12支持跨文件跳转。在符号定义处触发跳转时若符号未被引用则跳到行首否则会触发查找引用。查找引用右键Find All References预览引用单击条目跳转。诊断报错不符合仓颉语法/语义规则的代码以红色波浪线标记悬停查看报错信息修改正确后自动消失。选中高亮Document highlights光标位于变量或函数名处时当前文件内声明与使用处均高亮。悬浮提示Hover悬停变量显示类型信息悬停函数显示函数原型。工作区符号搜索CtrlT输入符号名即可搜索支持 class、interface、enum、struct、typealias、顶层函数/变量、prop、enum 构造器、成员函数/变量等定义类型。重命名光标置于自定义标识符右键Rename Symbol或按F2支持 class、interface、enum、struct、func、type、泛型、变量与自定义宏。大纲视图OUTLINE两层结构——顶层声明以及构造器与成员。面包屑导航光标置于符号处在面包屑中查看符号在当前文件与工程中的位置路径。签名帮助Signature help输入(或,时显示参数信息并高亮当前参数只要光标仍在参数列表内就一直显示可与补全共存。类型层次结构光标置于自定义类型上右键Show Type Hierarchy左侧显示层次Object作为所有类默认父类不显示支持在子类/父类视图间切换。调用层次结构光标置于函数名上右键Show Call Hierarchy左侧显示调用层次可切换调用者/被调用者视图。补充说明摘自 docs/source_zh_cn/language_service.md宏展开依赖宏的动态库涉及自定义宏展开的代码需先编译出动态库再启动语言服务。语言服务日志默认关闭可在插件设置中开启Cangjie Log后重启 VSCode日志位于插件安装目录下的log.txt。源码侧LSP 客户端会监听cjpm.toml与cjpm.lock的变化在确认后自动重启语言服务以生效修改见 src/lsp/src/extension.ts。编译构建BuildVSCode 中的可视化构建能力依赖cjpm要求打开的仓颉模块包含规范的cjpm.toml若无该文件可在终端使用cjc命令构建。构建共有四种入口命令面板F1或CtrlShiftP后输入分类词Cangjie选择各类构建命令详见下方清单。VSCode 终端直接运行cjpm命令首次使用需重启 VSCode 使终端环境生效。运行按钮单击.cj编辑器右上角的运行按钮结合cjpm.toml与cjpm_build_args.json配置编译并运行整个工程output-type为executable时会在终端打印运行结果。锤子按钮单击.cj编辑器的锤子按钮仅编译整个工程不执行运行动作编译同样结合上述两个配置文件。在 package.json 中可以查看到全部构建命令的注册列表如cangjie.build.parallel并行编译、cangjie.build.verbose详细日志编译等同时注册了extension.formatCj、cangjie.cjlint、cangjie.cjcov三个快捷键CtrlAltF/CtrlAltC/CtrlAltG。常用构建命令详解Cangjie: Parallelled Build并行编译编译后工程目录下生成target目录内含release目录其下包含.build-logs、bin存放可执行文件仅当output-type为executable时生成以及工程名同名目录编译中间产物Output 面板打印编译是否成功。Cangjie: Build With Verbose编译并打印编译日志。Cangjie: Build With Debug生成带 debug 信息的目标文件供调试使用。Cangjie: Build With Coverage编译结果携带覆盖率信息。Cangjie: Build With Alias指定输出可执行文件的名称仅对output-type为executable有效回车后弹出输入栏。Cangjie: Build With Increment执行增量编译。Cangjie: Build With CustomizedOption按条件透传cjpm.toml中配置的customized-option字段未配置该字段时插件会提示先配置。Cangjie: Build With TargetDir指定编译产物输出路径默认使用cjpm.toml的target-dir字段输入不同路径时会询问是否覆盖该字段。Cangjie: Build With Jobs编译前自定义最大并发度输入为任意数字设置范围为(0, CPU 核数 * 2]输入非数字会终止并提示Invaild input! The input should be number.超出范围时默认采用 CPU 核数并给出告警。Cangjie: Build With CodeCheck编译时进行 CodeCheck 静态检查要求级别违规导致编译失败建议级别违规仅告警并正常完成编译。Cangjie: Build With MultiParameter多参数编译可叠加多个参数。其中--target选项根据cjpm.toml的target字段决定是否显示--customized-option根据customized-option字段决定是否显示勾选参数后回车或单击 OK 执行。叠加的编译结果等于各命令分别执行的总和。Cangjie: Update Cjpm.toml修改cjpm.toml后更新cjpm.lock文件通过 UI 界面修改则无需手动执行。Cangjie: Clean Build Result清除编译结果工程目录下 build 目录。Cangjie: Check Circular Dependencies检测文件依赖。单元测试相关命令Cangjie: Execute Test File编译单元测试产物、执行测试用例并直接打印结果。Cangjie: Test With NoRun仅编译测试产物。Cangjie: Test With SkipBuild在产物存在的前提下执行对应测试产物。Cangjie: Test With Jobs执行测试前自定义最大并发度操作与Build With Jobs相同。Cangjie: Test With MultiParameter多参数执行单元测试。可依次选择指定包路径多个路径用空格分隔实现多包并发测试、指定模块多个模块用空格分隔实现多模块测试或指定测试成员还可叠加--filtervalue过滤测试子集的表达式、--targetname需选择平台前提是cjpm.toml配置了target与--customized-option需配置了customized-option。单元测试代码文件需以_test.cj结尾与对应源码包同目录存放详见 docs/source_zh_cn/compilation_and_building.md。安装与卸载命令Cangjie: Install With Verbose / Debug展示安装日志 / 生成 debug 版本安装产物。Cangjie: Install With RootPath指定可执行文件安装路径。不配置时 Linux/macOS 默认为$HOME/.cjpmWindows 默认为%USERPROFILE%/.cjpm源码常量cjpmDefaultPath .cjpm见 src/dap/src/constants.ts。Cangjie: Install With TargetDir指定编译产物存放路径安装前先编译。Cangjie: Install With Alias指定最终安装的产物名。Cangjie: Install With Git输入远端 git url进一步选择 branch / tag / commit 后安装远端代码仓产物。Cangjie: Install With List打印已安装产物列表。Cangjie: Install With SkipBuild跳过编译阶段直接安装需项目已编译完成。Cangjie: Install With Jobs指定安装时最大并发数。Cangjie: Install With CustomizedOption按条件透传customized-option字段需先在cjpm.toml中配置。Cangjie: Install With SkipScript跳过待安装模块构建脚本的编译运行。Cangjie: Install With CustomParameter在设置页Cangjie: Cjpm Install: Custom中输入cjpm install相关选项如-V -g --name value执行命令时自动带入。Cangjie: Uninstall Binary输入可执行文件名称卸载仓颉项目清除对应可执行文件与依赖文件。Cangjie: Uninstall With Root指定卸载时搜索的目标路径默认同上Linux/macOS 为$HOME/.cjpmWindows 为%USERPROFILE%/.cjpm。可视化配置构建参数可通过三种方式配置cjpm.toml与cjpm_build_args.json直接编辑这两个文件。命令面板执行Cangjie: Edit Configuration (UI)打开可视化编辑器。单击编辑器右上角的画笔按钮进入可视化界面。cjpm_build_args.json位于工程.vscode目录通过复选框/输入框确定编译参数修改会同步回文件插件在激活时会自动生成该文件见 src/tools/src/launch-tools.ts。cjpm.toml的配置输入内容并将光标移出输入框即生效。注意当cjpm.toml文件与参数配置界面同时在编辑区显示时对文件的修改不会同步到 UI 界面。cross-compile-configuration、package-configuration、customized-option均可在对应区域单击Add Configuration添加填写 key 与 compile-option 后单击对勾或回车同步到cjpm.toml单击叉号删除。package-configuration的output-type字段为下拉框可选executable、static、dynamic、null新配置默认null同步后删除该字段。转义规则在 UI 界面配置时只有customized-option中--cfg路径内的需要转义如--cfgD:/projects/cang\jie直接在cjpm.toml中填写时所有符号都需要转义如--cfg\D:/projects/cang\\jie\、--link-options\-rpathxxx\。customized-option的条件不能使用内置条件如When[os Linux]不能作为其条件只能添加开发者自定义条件。三方库导入三方库便捷导入仅适用于当前打开的仓颉工程主模块。在cjpm.toml中主要通过以下字段导入dependencies依赖的其它模块含版本号和路径两项必须全部配置优先使用。dev-dependencies格式同dependencies仅用于开发期依赖如测试依赖库作者应将下游用户不需要的依赖放于此字段。bin-dependencies导入已编译好的 package目前插件仅支持本地bin-dependencies配置。有两种形式package-optionmap 结构key 为模块名_包名与对应.so对应value 为.cjo前端文件路径如pro0_xoo ./test/pro0/xoo.cjo对应的.a/.so需与.cjo同路径。path-option字符串数组元素为目录路径如path-option [./test/pro0, ./test/pro1]cjpm 自动导入该路径下所有符合模块名_包名命名规则的库不满足规则的包只能通过package-option导入。同时配置时package-option优先级更高。ffi依赖外部 C 库的配置信息名称和路径。资源管理器的CANGJIE LIBRARY视图提供可视化的三方库管理单击分类栏加号添加、单击减号删除、单击视图编辑按钮打开可视化导入界面操作均同步到工程的module.json文件。注意导入限制需要链接动态库C 库与仓颉库时需自行设置LD_LIBRARY_PATHcjpm.toml的修改不会自动反映到 treeView/UI需手动更新。调试服务Debugging插件提供基于 cjdbCangjie Debugger的完整可视化调试能力DAP 适配器实现见 src/dap/src/cangjie-debug-adapter-descriptor-factory.tsLaunch 启动进程、Attach 附加到已运行进程源码断点、函数断点、数据断点、汇编断点最大数据断点数限制为 4见 src/dap/src/constants.ts源码内单步、运行到光标处、步入、步出、继续、暂停、重启、停止仓颉-C 互操作调试仓颉代码 continue、步入 C 代码汇编内单步、步入、步出反汇编视图表达式求值、变量查看与修改、调试控制台查看变量、查看程序输出反向调试记录重放与 Unittest 运行/调试通信机制调试插件客户端与服务端通过Socket 通信插件自动从9995 端口开始查找可用端口portLowerBound 9995上界 65535见 src/dap/src/constants.ts并在127.0.0.1上启动 Socket server 监听见 src/dap/src/common-utils.ts 的findAPortNotInUse与 cangjie-socket-debug-adapter.ts。Launch 模式调试仓颉工程未创建launch.json时按F5选择Run and Debug Cangjie(cjdb) Debug启动。已创建launch.json时在文件中单击Add Configuration Cangjie Debug (CJNative) : launch Build And Debug Cangjie Project添加配置再启动调试。调试单个文件选中.cj源文件右键选择Cangjie: Build and Debug File。插件会生成编译配置文件task.json与编译脚本按task.json执行脚本编译出可调试二进制并启动调试。对应任务定义类型cangjieDebugBuild在 package.json 中声明含label、cmd、args属性。调试手动编译的可执行文件使用cjc或cjpm手动编译出可调试二进制。选择Run and Debug Cangjie(cjdb) Debug Cangjie (CJNative): launch Choose Executable File Later启动。调试宏展开代码可调试debugMacro模式下的宏展开文件.marcocall此时宏对应原文件无法调试。远程调试Linux 到 LinuxLaunch 模式下调试服务会将本地编译的二进制推送到远程平台再调试远程平台启动 lldb-server建议使用 cjdb 自带路径/cangjie/third_party/llvm/lldb/bin/lldb-server命令形如lldb-server p --listen *:1234 --server。本地使用cjc/cjpm编译出可调试二进制。单击Run and Debug启动。launch.json远程调试配置示例{ name: Cangjie Debug (cjdb): test, program: /**/**/test, request: launch, type: cangjieDebug, externalConsole: false, remote: true, remoteCangjieSdkPath: /**/**/cangjie, remoteFilePath: /**/**/test, remoteAddress: 127.0.0.1:1234, remotePlatform: remote-linux }属性类型描述programstring被调试进程的全路径将被推送到远程平台remoteboolean是否启动远程 Launch 进程为 trueremoteCangjieSdkPathstring远程平台仓颉 SDK 路径remoteFilePathstring远程平台存放推送文件的全路径请确保路径合法且存在remoteAddressstring被调试进程所在机器的 IP 与 lldb-server 监听端口格式ip:portremotePlatformstring远程平台仅支持remote-linuxenvobject为被调试程序设置运行时环境变量会覆盖系统环境变量如需追加在配置项结尾增加\${env:PATH}例如PATH:/home/user/bin: ${env:PATH}Attach 模式调试本地进程在launch.json中单击Add Configuration Cangjie Debug (CJNative) : attach添加配置并启动。在弹出的进程选择界面选择要调试的进程。调试远程进程本地编译出可调试二进制并拷贝到远程机器。远程启动 lldb-server路径与命令同上。远程启动被调试的二进制文件。本地配置launch.json并启动调试。{ name: Cangjie Debug (cjdb): test, processId: 8888, program: /**/**/test, request: attach, type: cangjieDebug, remote: true, remoteAddress: 127.0.0.1:1234, remotePlatform: remote-linux }属性类型描述processIdstring被调试进程的 pid配置了 pid 优先 attach pid否则 attach programprogramstring被调试进程的全路径remotebooleanattach 本机进程为falseattach 远程进程设为trueremoteAddressstring远程调试时进程所在机器 IP 与 lldb-server 端口格式ip:portremotePlatformstring远程调试时的平台仅支持remote-linux查看调试信息进程处于 stopped 状态时左侧可查看断点、当前线程、堆栈和变量支持编辑断点与修改变量也可在 Editor 中悬停变量查看值在 TERMINAL 查看被调试程序输出。表达式求值与程序控制表达式求值WATCH 窗口添加/双击键入表达式Debug Console 键入表达式Editor 中双击选中变量后右键Evaluate in Debug Console。程序控制顶部调试工具栏的单步、步入、步出、继续、暂停、重启、停止右键Run to Cursor运行到光标处源码视图右键Open Disassembly View进入汇编视图。调试控制台执行 cjdb 命令以-exec开头后接正确的 cjdb 子命令例如执行单步调试-exec n。查看变量直接输入变量名称查看变量值。反向调试反向调试基于记录重放开启后调试服务会记录正向调试的所有停止点断点 单步及其线程、堆栈、变量等信息进入反向调试模式后可查看历史记录点的调试信息。配置设置Settings搜索cangjie找到Reverse Debug选项勾选Enable reverse debug开启自动记录并可配置自动记录的线程个数、堆栈个数、变量作用域、复杂类型变量子变量展开层数与子变量个数。修改配置后需重启仓颉调试。对应源码配置项在 package.json 中定义cacheThreadNumber默认 1范围 0-1000、cacheStackTraceNumber默认 0范围 0-1000、cacheScopeTypes默认 Locals 为 true、cacheVariablesLayer默认 1范围 0-100、cacheSubVariablesNumber默认 100范围 1-100000。工具栏单击调试工具栏时钟图标进入反向调试模式使用正反向继续、正反向单步控制程序单击方块图标退出反向调试回到正向调试的最后停止点。相关命令与图标open_switch.svg、reverse_resume.svg、reverse_step.svg等见 images注册在 package.json。反向断点一种特殊的源码断点Log Point正向调试时不会停止也不输出自动生成的 Log Message源码标记字符串为ReverseBreakpoint #This breakpoint is a reverse breakpoint. Please dont modify.见 src/dap/src/constants.ts。设置方式编辑器内右键Cangjie: Add Reverse Breakpoint为光标行设置右键Cangjie: Add Auto Reverse Breakpoints自动分析文件/文件夹内函数入口与出口并批量设置。进入反向调试模式后不支持再设置反向断点。时间线Timeline展示反向调试下记录的所有停止点。入口位于 VSCode 右下方的 Tab 标签行Cangjie Debug Timeline可在 Tab 行右键或 View 菜单中开关其 Webview 实现位于 debug-ui/ui-timeline基于 Konva 绘制见 debug-ui/ui-timeline/src/timeline。主时间线有左右游标可选择时间区域按住鼠标拖动可划选新时间区域Ctrl鼠标滚轮缩放每条时间线标识一个仓颉线程或系统线程。单击记录点时editor 与调试信息界面同步刷新。Unittest 运行与调试前置条件单元测试代码文件命名以_test.cj结尾如koo_test.cj与包源码同目录。使用方式单击Test/TestCase声明行上的run按钮运行对应测试类/case单击debug按钮进行调试。DAP 通信日志调试服务客户端与服务端采用 DAP 协议通信通信日志可用于定位问题日志路径在用户目录下/.cangjie/debug/logs/server源码常量serverLogPathSubFolder .cangjie/debug/logs/server见 src/dap/src/constants.ts。在设置中搜索cangjie找到Debug选项并勾选Enable DAPCommunication Log配置项cangjie.debug.log.enableDAPCommunicationLog即可开启。命令行工具集成格式化cjfmt单文件在.cj编辑器右键选择[Cangjie] Format或按CtrlAltF。工程/文件夹在资源管理器中选择文件或右键文件夹执行[Cangjie] Format。格式化通过cjfmt工具实现插件注册命令extension.formatCj/extension.formatCjFolder见 package.json。静态检查cjlint静态检查基于工具cjlint用于识别不符合编程规范的问题、发现代码漏洞帮助写出满足 Clean Source 要求的仓颉代码。当前仅检测工程目录src文件夹下的所有仓颉文件。入口编辑器右键[Cangjie] CodeCheck或CtrlAltC资源管理器右键[Cangjie] CodeCheck。结果展示不符合规范的问题展示在右侧表格单击文件链接可跳转到问题代码所在行列。自动检查CodeCheck On Save在设置中勾选Code Check On Save配置项Cangjie.CodeCheckOnSave默认 false开启保存后自动触发。开启后会在项目根目录生成cjlintignore.cfg配置文件支持三类屏蔽方式屏蔽文件、屏蔽文件夹和正则表达式每条配置项为相对配置文件所在目录的相对路径支持正则无需双引号。例如配置src/subdir1/与src/subdir2/a.cj即可屏蔽对应目录与文件详见 docs/source_zh_cn/command-line_tools_integration.md。源码侧实现位于 src/tools/src/cjlint/cjlint-dignostic.ts 与 cjlint-on-save.ts。代码覆盖率cjcov入口编辑器右键[Cangjie] Coverage或CtrlAltG生成当前文件的覆盖率报告资源管理器中选择文件或右键文件夹执行[Cangjie] Coverage生成对应范围报告。注意当选择的文件夹中不包含仓颉文件时不会生成覆盖率报告。在生成的覆盖率报告页面可单击文件名查看覆盖率详情Webview 实现见 src/tools/src/cjcov/cjcov-webview.ts。从源码理解插件架构入口与激活src/extensions.ts 是插件统一入口依次激活工具模块、DAP 与 LSP首次安装后会自动打开内置 README 预览通过markdown.showPreview打开扩展目录内 README。语言服务客户端src/lsp/src/extension.ts 基于 vscode-languageclient 实现包含cjpm.toml/cjpm.lock文件监视、LSP 重启、单文件模式支持以及 add-import / unused-symbol 两个 CodeAction provideradd-import-codeaction-provider.ts、unused-symbol-codeaction-provider.ts。工具模块src/tools/src/launch-tools.ts 注册工程创建、构建、格式化、静态检查、覆盖率、SDK 配置视图等能力并在激活时自动生成cjpm_build_args.json、设置终端 cjpm 环境。调试适配器src/dap/src/cangjie-debug-adapter-descriptor-factory.ts 负责在调试会话启动时校验 Python 运行时、执行前置构建buildBeforeLaunch、启动 DAP Socket 服务端自动从 9995 端口起寻找可用端口并创建调试适配器。单元测试佐证仓库包含调试配置相关测试src/dap/test/cangjie-debug-configuration-provider.test.ts、描述符工厂与配置片段测试等可结合阅读以深入理解配置解析逻辑。相关资源中文使用指南索引docs/summary_cjnative.md安装指导docs/source_zh_cn/install.md语言服务docs/source_zh_cn/language_service.md创建仓颉工程docs/source_zh_cn/create_cj_project.md编译构建docs/source_zh_cn/compilation_and_building.md调试服务docs/source_zh_cn/debug_service.md命令行工具集成docs/source_zh_cn/command-line_tools_integration.md许可证本扩展采用 Apache License 2.0详见 LICENSE 与 COPYRIGHT。提示克隆本仓库后可结合npm run webpack生产构建、npm run compiletsc 编译等脚本见 package.json自行构建调试扩展源码。赞分享开发工具代码编辑器调试器【免费下载链接】vscode_cangjie项目地址https://gitcode.com/Cangjie/vscode_cangjie点击查看免费下载相关推荐如何让老旧Mac焕发新生OCLP-Mod系统升级完整指南如何让老旧Mac焕发新生OCLP Mod系统升级完整指南 你的Mac电脑是否已经被苹果官方抛弃无法升级到最新的macOS系统是否看着朋友的新设备功能眼红桌面应用CLI系统编程CSS Blocks VS Code 语言服务器扩展客户端与服务端的本地运行与调试指南CSS Blocks VS Code 语言服务器扩展客户端与服务端的本地运行与调试指南 CSS Blocks 为 VS Code 提供了基于语言服务器协议L前端构建工具在 VS Code 中高效编写 Rego 策略vscode-opa 官方扩展与 Regal 语言服务器、调试器集成完全指南在 VS Code 中高效编写 Rego 策略vscode opa 官方扩展与 Regal 语言服务器、调试器集成完全指南 本指南围绕 Open Policy后端认证鉴权云原生上一篇如何快速做出组会PPTcodex-claude-academic-skills学术PPT生成实战教程下一篇Miller 数据类型体系详解标量、集合、空值与类型推断机制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考