mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-25 16:58:06 +08:00
46 lines
3.4 KiB
Plaintext
46 lines
3.4 KiB
Plaintext
title "编辑器"
|
||
spark `作为一个功能完备的工具系统,编辑器是必不少的工具。
|
||
web.code.vimer 就是 Contexts 自带的编辑器,具有语法高亮、语法模板、语法补全、语法跳转等功能。
|
||
web.code.vimer 也是一个编辑器框架,默认已经支持 Contexts 用到的语言 Golang、Javascript、HTML、CSS、sh、shy 等,
|
||
如需其它语言,直接添加语法模块即可。`
|
||
spark `Contexts 中所有的工具,都可以被当成插件,在编辑器中使用。`
|
||
spark `<a>http://localhost:9020/chat/cmd/web.code.vimer</a>`
|
||
field web.code.vimer
|
||
|
||
chapter "目录与文件"
|
||
section "目录结构"
|
||
spark `在 Contexts 中,当前空间的所有的代码和文档都保存在 ./src/ 目录下,但有时会用户外部依赖库,并且根据当前需要去更改依赖库的代码。
|
||
可以使用 web.code.git.repos 命令,来管理这些依赖库。这些依赖库,全部直接保存在 ./usr/ 目录下。
|
||
`
|
||
|
||
section "工具参数"
|
||
spark `web.code.vimer 最核心的功能,当然是展示目录结构与文件内容。
|
||
所以定义了三个参数 path、file、file。这样 vimer 在使用的地方,就可以通过这三个参数进行控制。
|
||
vimer 也会根据场景有不同的界面。如在命令网页中,vimer 会占据整个网页显示完整的功能。在架构图的工具中使用时,则只展示文件内容。`
|
||
|
||
section "目录列表"
|
||
spark `在左边导航区,显示目录列表,是由参数 path 指定的目录,加上代码仓库管理工具 web.code.git.repos 返回的代码仓库列表中的目录。
|
||
vimer 也实现了延时加载,默认只加载项目列表与当前目录下的文件列表,只有点击打开了目录,才会请求此目录下的文件列表。`
|
||
|
||
chapter "语法与插件"
|
||
spark `vimer 在加载文件内容时,会根据文件的扩展名,自动的加载语法插件。`
|
||
|
||
chapter "预览与输出"
|
||
spark `每种语法的文件,使用方式是不一样的。所以在 vimer 里实现了一种语法引擎的框架,可加载各种语法的模块,并分发各种处理事件。
|
||
每种语法模块,都可以定义当前文件的预览界面与输出界面如何显示。`
|
||
order `
|
||
.shy 的语法模块,就定义了 .shy 的文件预览效果,是生成一个网页来显示文档的效果。
|
||
.go 的语法模块,就会根据文件名,查找出它生成的软件工具,在预览界面中展示此工具。
|
||
.js 的语法模块,也会根据文件名,查找出它关联的后端模块,并在预览界面中展示此工具。
|
||
.html 的语法模块,会直接用文件内容生成一个网页,展示出来。
|
||
`
|
||
|
||
chapter "模块与插件"
|
||
spark `Contexts 是一个工具系统,内置了大量的软件工具。这些工具既要完全独立,又要能和其它所有工具更深度的配合。这就是为什么 Contexts 要自研前后端框架的动力。`
|
||
spark `Contexts 中的所有前端、后端的各种工具,都可以直接在编辑器中使用。但为了更好的和编辑配合起来,实现更高效的互动,在编辑器的代码添加了很多框架性的功能。
|
||
如编译时 vimer 调用编译工具 web.code.compile 执行编译后,有时会生成一些错误提示信息,这时 vimer 就会根据这些信息实现跳转的功能。
|
||
`
|
||
|
||
chapter "分屏与按键"
|
||
spark `vim 是一个非常高效且强大的编辑器,所以 Contexts 为了致敬 vim,便将自己的编辑器命名为 vimer,很多编辑器的操作,都是借鉴了 vim 的习惯。`
|