1 开发参考:小众语言如何开发大纲分析脚本
1.1 应用场景
在使用IDE进行代码开发时,代码中的变
量、结构体
、函数
等,在大纲视图中都会显示出来,用户可以快速的了解当前文档的结构,以及快速跳转到函数、变量的声明位置。
很多做的比较好的文本编辑器通过支持ctags工具,编辑器直接读取ctags的分析结果,即可在大纲面板显示大纲,但是对于一些小众语言,ctags并没有提供支持,如果没有很好的IDE支持,小众语言的开发会给用户带来较大的不便。
另人欣慰的是,EverEdit提供了通用的大纲接口,小众语言的用户可以通过EverEdit脚本来分析大纲,这给用户提供了无限可能。
注:EverEdit自己的Go、Markdown文件的大纲分析,就是通过脚本实现的!
1.2 使用方法
1. 通过脚本生成Outline文件,以下是一个Outline文件的内容
1:5#Imports
7:5#errors
8:5#internal/filepathlite
9:5#os
2:3#Variables
17:3#ErrBadPattern
3:0#Functions
211:0#getEsc()
242:0#Glob()
331:0#glob()
246:0#globWithLimit()
🕮说明:由于语言千差万别,上述大纲的分析逻辑并不在本文讨论过程中,用户需要自行研究。
-
大纲文件的层级依据缩进层级,第1级表示分类:
- #Imports:引用类, 其子级表示引用了哪些库。
- #Variables:变量类,其子级表示有哪些变量。
- #Functions:函数类,其子级表示有哪些函数。
-
分类前的数字说明,如:1:5, 2:3, 3:0
- 冒号前的数字:表示大纲节点上使用哪个图标,该数字是图标序号。
- 冒号后的数字:表示该大纲的分类,目前看,分类在显示上没有差别。
-
子级前的数字,如:7:5, 211:0,
- 表示该变量、函数等所在的行列号,双击时会跳转到该位置。
2. 将脚本生成的Outline信息保存为临时文件,并使用OpenOutlineFile函数进行加载,如
var doc = App.ActiveDoc;
path=App.CreateTempFile(False)
SaveTextAsUTF8(outline_text, path) //该函数写文件,非EverEdit自带函数
doc.OpenOutlineFile(path, "C:\\Temp\\image\\img.bmp"); //参数1 path为outline文件全路径,参数2为图标文件bmp格式
3. 将分析脚本存放到Macro目录下的__outline__
目录,即可在大纲右键菜单上显示相关菜单
1.3 大纲样例
下图为添加图标后的大纲示例:
文档作者声明:本文档仅用于学习交流,未经作者许可,不得将本文档用于其他目的。
Copyright © 2022~2024 All rights reserved.