如何构建与部署tree-sitter-cangjieMakefile、CMake与npm三种构建路径实战对比【免费下载链接】tree-sitter-cangjie项目地址: https://gitcode.com/Cangjie-SIG/tree-sitter-cangjietree-sitter-cangjie是专为仓颉编程语言打造的 Tree-sitter 语法解析器它能将仓颉代码高效地解析为结构化语法树支撑语法高亮、自动补全、代码重构等编辑能力。本教程面向新手带你完整走完Makefile、CMake、npm 三种构建路径并横向对比优劣帮你选出一条最适合的构建与部署路线。一分钟认识 tree-sitter-cangjie在动手构建前先了解这个仓库里有什么核心资产位置作用语法规则grammar.js仓颉语言的语法定义入口解析器源码src/parser.c由语法生成的 C 语言解析器扩展词法扫描器src/scanner.c处理多行原始字符串等特殊词法高亮/缩进规则queries/highlights.scm、queries/indents.scm编辑器着色与智能缩进语法测试语料test/corpus/main.txt验证解析结果的测试用例多语言绑定bindings/覆盖 C、Go、Node、Python、Rust、Swift项目元信息统一登记在 tree-sitter.json 中语言名为cangjie文件扩展名为.cj当前版本 0.1.0许可证为木兰宽松许可证 2.0MULANPS-2.0。构建前准备环境要求与仓库获取三条路径都依赖同一个前提——安装tree-sitter CLI用于从语法生成解析器、运行测试然后克隆仓库git clone https://gitcode.com/Cangjie-SIG/tree-sitter-cangjie cd tree-sitter-cangjie环境速查Makefile 路径Linux / macOSMakefile 明确不支持 Windows需要 C 编译器与makeCMake 路径任意平台CMake ≥ 3.13npm 路径Node.js 环境自动依赖 node-gyp 工具链路径一Makefile 经典构建系统级安装首选Makefile 是最传统的构建入口一条命令产出完整的 C 生态三件套make # 生成静态库 .a、动态库 .so/.dylib 和 pkg-config 文件 make test # 运行 tree-sitter 语法测试 make install # 部署到 /usr/local可通过 PREFIX 覆盖它的几个亮点值得新手注意跨平台差异自动处理Darwin 系统产出.dylib并配置 rpathLinux 产出.so并写入 soname无需手动改参数ABI 版本化从 src/parser.c 中自动读取 LANGUAGE_VERSION 生成库版本号保证与 Tree-sitter ABI 兼容一键部署make install会把头文件装到include/tree_sitter/、库文件装到lib/、.scm查询文件装到share/tree-sitter/queries/cangjie/与 CMakeLists.txt 的布局完全一致可卸载提供make uninstall目标部署后想清理很干净适合场景想在 Neovim 等编辑器中系统级注册 cangjie 解析器、给 C/C 宿主程序链入解析库的团队。路径二CMake 构建现代工程化集成CMakeLists.txt 提供了与 Makefile 等价的工程化方案适合把解析器作为依赖集成进更大的 C 工程cmake -B build cmake --build build cmake --install build相比 MakefileCMake 路径的优势在于声明式配置BUILD_SHARED_LIBS默认开、TREE_SITTER_REUSE_ALLOCATOR等选项可用缓存变量控制无需记命令行参数自动生成步骤检测到 src/grammar.json 变化时自动调用 tree-sitter CLI 重新生成 src/parser.c标准安装规范基于GNUInstallDirs计算安装路径.pc文件由 bindings/c/tree-sitter-cangjie.pc.in 模板渲染其他 CMake 工程可通过pkg_check_modules直接发现并链接测试目标cmake --build build --target ts-test即可跑语法测试适合场景跨平台发行版打包、把解析器嵌入自研 LSP 或静态分析工具的开发者。路径三npm 构建Node 生态与 Web 集成package.json 让这个项目同时是标准的 npm 包版本 0.1.0入口为 bindings/node/。核心脚本有三个命令脚本用途npm installnode-gyp-build自动编译或加载原生绑定 bindings/node/binding.ccnpm starttree-sitter build --wasm playground生成 WASM 版解析器并在浏览器调试npm testnode --test运行 bindings/node/binding_test.js 绑定测试构建细节由 binding.gyp 描述自动探测 src/scanner.c 是否存在并加入编译源非 Windows 平台启用-stdc11。产物包含prebuilds/预编译二进制与*.wasm意味着编辑器插件如基于 Node 的编辑器可直接npm i使用Web 场景拿到 WASM 版解析器无需本地编译器仓库还提供了 Cargo.toml、setup.py / pyproject.toml、Package.swiftRust、Python、Swift 生态同样开箱即用适合场景JS/TS 工具链开发者、想在 Web 端做仓颉代码高亮的团队。三种构建路径对比哪条路最适合你维度MakefileCMakenpm平台支持Linux/macOS全平台全平台含 WASM产物形态静态库 动态库 .pc库 头文件 .pc原生模块 / WASM典型部署系统级make installcmake --installnpm install/ 插件引用测试方式make testts-test目标npm test上手难度⭐ 极简⭐⭐ 标准⭐ 极简最佳适用编辑器解析器注册、C 宿主大型工程依赖、发行版打包Node 生态、Web 高亮一句话选型只用 Neovim/编辑器→ Makefile或直接用 tree-sitter 插件拉取见 README.md 中的配置示例开发 C/C 工具链→ CMake写 JS 插件或 Web 工具→ npm构建验证跑测试确认部署成功无论走哪条路径都建议最后跑一次语法测试确认解析器与 test/corpus/main.txt 中的用例输出一致tree-sitter test测试通过即代表 queries/ 下的高亮、缩进、tags、textobjects 规则与解析器版本匹配可以安全部署到编辑器中。若后续升级语法只需重新执行对应构建命令三种路径的产物布局保持一致迁移成本几乎为零。常见问题速查Windows 下make报错这是设计内的限制见 Makefile 顶部请改用 CMake 或 npm 路径构建失败提示缺少tree-sitterCLI先安装 tree-sitter CLI 再构建它是从 grammar.js 生成解析器的前置依赖安装后编辑器找不到查询文件检查share/tree-sitter/queries/cangjie/下是否包含 highlights.scm 等文件缺失时重新执行安装目标即可想看 Rust/Python/Swift 的构建方式分别参考 bindings/rust/lib.rs、bindings/python/、bindings/swift/ 下的绑定实现掌握这三条路径后你就覆盖了 tree-sitter-cangjie 在系统级、工程级、生态级上的全部构建与部署需求。【免费下载链接】tree-sitter-cangjie项目地址: https://gitcode.com/Cangjie-SIG/tree-sitter-cangjie创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
【Dv2Admin】页面保存增加保存预警提示信息 在现代Web应用开发中,用户体验的提升不仅依赖于流畅的交互设计和美观的界面,还需要通过及时反馈让用户了解当前操作的状态。在表单更新操作场景中,用户需要实时知道他们的操作是否成功或需要采取额外步骤。通过引入弹窗提示等反馈机制,可以有效地提升用户体验。
本文将通过… · 2026/9/24 16:21:40
【Dv2Admin】列表翻页解决数据存储的交互问题 在现代的动态网页应用中,交互和数据的无缝连接是用户体验的核心。在浏览购物网页或管理系统时,选择项的即时响应、数据的自动保存、分页数据的处理以及多项选择后的提交等功能都无形中提升了用户体验。然而,这一切背后的技术实现却并不简单。
本文将通过一个学生书籍管理系… · 2026/9/24 16:21:40
EasyWeChat 3.0 升级解读:全新架构、更低耦合与更友好的调试支持 EasyWeChat 3.0 升级解读:全新架构、更低耦合与更友好的调试支持 【免费下载链接】easywechat 📦 一个 PHP 微信 SDK 项目地址: https://gitcode.com/gh_mirrors/ea/easywechat
导读
docs/src/3.x/releases.md 是 EasyWeChat 3.x 文档的升级日志… · 2026/9/24 16:21:40
云手机哪个好用?系统兼容性、保活、网络维度分析,怎么选 云手机本质是部署在云端服务器上的 Android 虚拟设备,可实现本地设备关机后云端应用持续运行。本文从技术指标出发,整理了云手机的核心评估维度,对比市面主流几款产品的特性、优缺点,面向个人开发者、测试人员、应用托管用户提供选… · 2026/9/24 17:02:50
如何 5 步让虚拟角色开口说话:ComfyUI-WanVideoWrapper 语音驱动完整新手指南 如何 5 步让虚拟角色开口说话:ComfyUI-WanVideoWrapper 语音驱动完整新手指南 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper
你是否也遇到过这样的场景:配音挑得再好&am… · 2026/9/24 17:02:50
【SRC】EDU实战篇5:OSS 特征识别与权限联动利用技巧 文章目录 思路 案例一(OSS接管) 站点1 站点2 案例二(OSS覆盖) 站点1 站点2 站点3 案例三(工具综合利用) 站点1 总结 ⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关… · 2026/9/24 17:02:37
【Coze】【视频】三分钟读一本书 今天给大家演示一个 《三分钟读一本书》Coze 工作流。该工作流通过大模型驱动的分镜文案生成、图像合成、语音合成以及视频草稿自动创建等一整套流程,将一本书的内容浓缩为一个三分钟的视频,实现从文本到成片的全自动化制作。用户只需输入书名、作者和个人账号信息,即可得到… · 2026/9/24 17:02:12
第24篇-MCP-Client架构-Host应用如何管理多个Server连接 【MCP 全栈教程】第 24 篇:MCP Client 架构——Host 应用如何管理多个 Server 连接 本系列定位:从协议原理到 Server 开发、Client 开发、再到各大平台实战集成,系统化掌握 MCP(Model Context Protocol)全栈技术体系。… · 2026/9/24 17:01:59
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44