1
0
forked from x/ContextOS
2023-07-05 00:45:09 +08:00

53 lines
4.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

title "编辑器"
spark `作为一个功能完备的工具系统,编辑器当然是必不少的工具。
web.code.vimer 就是 Contexts 自带的编辑器,具有语法高亮、语法模板、语法补全、语法跳转等功能。
web.code.vimer 也是一个编辑器框架,默认已经支持 Contexts 用到的语言 Golang、Javascript、HTML、CSS、sh、shy 等,
如需其它语言直接添加语法模块即可。Contexts 中所有的工具,都可以被当成插件,在编辑器中直接使用。`
spark demo vimer
chapter "工具界面"
spark `web.code.vimer 工具,可以在很多地方被使用,不同的地方也会有不同的界面。
如在笔记中,只需要显示文件内容,所以 web.code.vimer 只会显示工作区的文件内容,其它的工具栏都会隐藏掉。
如在单独的网页中web.code.vimer 所有界面都会完整显示,成为一个完整的 IDE。`
spark `一个完整的界面,有左边的导航区、上面的标题区、中间的工作区、右边的预览区、下面的输出区。
在左边的导航区,会有各种子栏,如目录列表、空间列表、命令列表、插件列表等,并且可以随时添加新的功能区。点击列表项,即可打开关联的文件,
在预览区与输出区,是每种语法模块自定义的显示内容。
如 .html 文件的预览区和输出区,是一个内嵌网页,用来查看网页效果。
如 .go 文件的预览区和输出区,就是当前代码所开发功能的界面,这样就可以边写代码,边看效果。`
chapter "目录与文件"
section "界面参数"
spark `web.code.vimer 最核心的功能,当然是展示目录结构与文件内容。所以定义了三个参数 path、file、line。这样 vimer 在使用的地方,就可以通过这三个参数进行控制。
从而显示指定的目录列表与文件内容。`
section "目录列表"
spark `在左边导航区显示的目录列表,是由参数 path 指定的目录,加上代码仓库管理工具 web.code.git.repos 返回的代码仓库列表。
vimer 也实现了延时加载,默认只加载当前目录下的文件列表,只有点击仓库才会打开它的目录,才会加载此仓库下的文件列表。`
section "项目列表"
spark `在 Contexts 中,当前空间的所有的代码和文档都保存在 ./src/ 目录下,但有时会用到外部依赖库,并且根据当前的需要,去更改依赖库的代码。
比如 Contexts 刚开始只有一个代码仓库,后来随着功能不断的增加,不断的拆分出新的代码仓库,现在已经有十几个代码仓库,所以有时为了实现一个新功能,就会修改多个代码仓库。
为了管理这么多个依赖库,就可以使用 web.code.git.repos 命令,进行统一的上传、下载、提交代码等操作。这些依赖库,分别保存在 ./usr/ 目录下。`
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 的习惯。`