Bootstrap

国产文本编辑器EverEdit - 如何给小众语言开发大纲分析脚本

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.

;