Ace:浏览器端的代码编辑器,27k Star 的老牌开源项目
文章目录
- Ace:浏览器端的代码编辑器,27k Star 的老牌开源项目
Ace:浏览器端的代码编辑器,27k Star 的老牌开源项目
Ace 是一个用 JavaScript 编写的独立代码编辑器,在 GitHub 上获得了 27,000+ 的 Star。
它的目标是在浏览器中提供一个功能和性能都能媲美原生编辑器的代码编辑环境,支持 TextMate、Vim、Eclipse 等编辑器的特性。目前它是 Cloud9 IDE 的核心编辑器,也是 Mozilla Skywriter 项目的继任者。
功能特性
Ace 的语法高亮支持超过 120 种编程语言,可以直接导入 TextMate 和 Sublime 的语法定义文件。编辑器内置了 20 多个主题,还能加载 .tmtheme 文件自定义外观。
在处理能力上,Ace 可以应对大型文档,测试过的上限是 400 万行代码。对于日常开发中的项目文件,这个容量绰绰有余。
键绑定方面,Ace 提供了完整的自定义能力,内置了 Vim 和 Emacs 模式,对习惯这些编辑器的用户来说可以直接上手。
其他功能包括代码折叠、多光标编辑、实时语法检查、正则表达式搜索替换、拖拽文本编辑、软硬 Tab 切换、隐藏字符显示、行内换行等。它还支持通过 ace-linters 扩展更多语言的智能补全和错误提示。
嵌入方式
Ace 可以嵌入任何网页。最简单的方式是引入 ace.js 文件,然后用几行 JavaScript 代码初始化编辑器:
<div id="editor">some text</div> <script src="src/ace.js"></script> <script>var editor = ace.edit("editor");</script>也可以通过 npm 安装 ace-builds 包,或者用 requireJS 按需加载模块。编辑器需要一个有明确尺寸的 DOM 元素作为容器,设置为 relative 或 absolute 定位即可。主题和语言模式通过加载对应的 JS 文件来启用,整个过程不需要额外的构建工具。
切换主题只需引入主题文件并调用 setTheme 方法,切换语言模式也是类似的流程。编辑器销毁时调用 destroy 方法并移除容器元素就行。
安装运行
Ace 开箱即用,不需要构建步骤。克隆仓库后用 Node.js 启动自带的 HTTP 服务器,就能在浏览器中打开 kitchen-sink 演示页面体验全部功能。
如果需要自行构建,安装 npm 依赖后运行构建脚本即可。构建工具支持压缩、命名空间处理等选项,也能输出到指定目录供其他项目使用。
测试方面,Ace 的单元测试可以在 Node.js 中直接运行,也可以通过浏览器访问测试页面来调试,浏览器环境下定位失败用例更方便。
许可证与社区
Ace 使用 BSD 许可证发布,对开源和商业项目都很友好。社区活跃,鼓励开发者提交代码贡献,添加自己需要的语言高亮和键绑定。
开源和商业项目都很友好。社区活跃,鼓励开发者提交代码贡献,添加自己需要的语言高亮和键绑定。
