国产编辑器EverEdit - 大纲视图

1 大纲视图

1.1 应用场景

在编辑较长代码文件时,使用大纲视图可以方便的检视当前文件的变量、函数等信息,方便在不同函数间跳转,对整个文档的全貌了然于胸。

在编辑XML文档时,通过展示XML文件的层次结构、节点布局,用户可以一览全貌,提高编辑效率。

1.2 使用方法

1.2.1 显示大纲视图

  1. 步骤1 :选择菜单查看 -> 停靠窗格 -> 大纲视图即可打开"大纲视图",如下图所示:

上图中用户编辑vbs文件,左边"大纲视图"显示当前文件中的函数列表

1.2.2 其他大纲功能

跟随光标: 用户在编辑器中进行编辑时,光标移动到哪个函数的函数体,大纲视图中的对应列表也会被选中。

刷新:重新分析大纲
复制结构: 将整个大纲列表全部复制到剪贴板。

1.3 大纲数据的来源

EverEdit提供了功能强大的大纲分析能力,大致可以分为如下4类:

  • 着色文件定义的符号: 根据语法文件配置的正则表达式规则提取符号。
  • ctags分析器:由ctags.exe对文件进行分析,EverEdit加载ctags的分析结果到大纲。
  • 内置分析器:比如:Go、Markdown。
  • 显示大纲:按EverEdit语法文件的折叠规则进行大纲分析,显示层次结构。

1.3.1 ctags分析器

对很多编程语言,使用ctag都可以方便的提供对源文件的分析,输出非常详尽的变量、函数等信息,是编写或阅读代码不可多得的帮手。

使用ctag做为大纲数据来源时,在大纲窗口上单击鼠标右键,可以看到如下菜单:

显示Tags:平铺:大纲顺序与变量、函数等在文档中的前后顺序对应。
显示Tags:按照从属关系分组:如果识别从属关系,则按从属关系显示,比如:类和成员函数就属于从属关系。
显示Tags:按照类型分组:按符号的类型组织,比如:函数、变量等各分一类。

ctags最早是Vim下的一个组件,开始时是专门为C语言定制的分析器,后面经过发展,支持多达几十种语言,也慢慢的被其他编辑器采用,ctags目前分成了两个主要的分支,其一是exuberant ctags,其支持对41种编程语言进行分析,但该项目早在2009即停止了维护;其继任者是Universal ctags,目前维护状态很活跃,在exuberant ctags的基础上,在不断的增加对其他编程语言的支持,详情请参考:
exuberant ctags
universal-ctags
🕮说明
EverEdit目前使用的ctags是exuberant ctags,版本号是5.8(2009年停止更新),如果用户想使用最新的ctags,可以去universal ctags项目网址下载最新版,解压后将ctags.exe文件替换掉EverEdit安装目录下bin目录的ctags.exe。

1.3.2 内置的分析器

由于早期ctags的发展速度跟不上语言的发展速度,ctags没有及时支持go语法和Markdown语法,EverEdit为此单独地给go、Markdown做了分析器:

在"大纲视图"面板单击鼠标右键,有如下菜单:

一般情况下,大纲视图会根据打开的文档类型,自动选择对应的分析器,因此,打开go文件、markdown文件就可以直接显示大纲了。
🕮说明
* universal ctags最新版已经支持go、markdown语法,但是分析效果不如EverEdit内置的分析器。

1.3.3 着色文件定义的符号

如果用户日常使用的某种特定语法格式的文件,既没有在ctags的支持范围内,也没有流行到惊动EverEdit单独定制分析器,那么,用户还可以通过语法着色文件来定义自己的解析规则。

下面以编写EverEdit扩展脚本为样例进行演示:

  1. 步骤1 :选择菜单"工具 -> 设置 -> 语法着色",在弹出的语法着色配置窗口中,单击高级按钮,如下图所示:

    注:语法着色列表会自动选中当前打开文档对应的语法规则。

  2. 步骤2 :配置正则表达式规则和分组
    显示大纲的方式:选择用正则表达式提取符号
    用正则表达式表达式去提取符号编辑框中输入合适的正则表达式(注:需要用户学习正则表达式语法)。
    使用捕获分组编辑框中输入正确的分组(注:分组对应正则表达式中的括号)

    取哪个分组即表示在大纲视图的列表中显示哪组匹配内容,一般使用函数名所在分组。

  3. 步骤3:切换到大纲视图即可看到正则表达式提取的符号,如下图所示

1.3.4 显示大纲

使用方法:在大纲视图面板中单击鼠标右键,选择菜单显示大纲,则大纲面板显示的内容将是有折叠的,该折叠与编辑器里的代码折叠一一对应,如下图所示:

显示大纲层级结构的来源,为语法着色文件中的折叠规则,用户可以打开菜单工具 -> 设置 -> 语法着色,在弹出的对话框中单击"编辑"按钮,如下图所示

在打开的语法文件中找到FoldText字样,如下图所示,其定义的正则表达式即为折叠的条件。

上图示例是VBS语言的折叠规则,折叠规则的定义需要对正则表达式比较熟悉。

1.4 名词解释

符号:这里的符号不是指键盘上的符号(~!@#等),而是指编程语言中的标识符,比如:函数名、变量名、对象名等,标识符一般是以字母或下划线开头,只能包含字母、下划线、数字的字符串,如:Print,Writeln等。


文档作者声明:本文档仅用于学习交流,未经作者许可,不得将本文档用于其他目的。

Copyright © 2022~2024 All rights reserved.

相关推荐
Liudef061 小时前
deepseek v3-0324 化学键线式Canvas编辑器设计
编辑器·deepseek
web_Hsir2 小时前
uniapp 微信小程序项目中 地图 map组件 滑动面板
微信小程序·uni-app·notepad++
1024小神3 小时前
vscode/cursor编辑器中vue3文件里面的css不能注释解决办法
css·vscode·编辑器
2501_906801481 天前
BY组态-低代码web可视化组件
前端·物联网·低代码·数学建模·编辑器·web
周Echo周1 天前
5、vim编辑和shell编程【超详细】
java·linux·c++·后端·编辑器·vim
徐小夕@趣谈前端1 天前
从零到一开发电子病历编辑器(源码+教程)
前端·javascript·vue.js·编辑器·ecmascript
Liudef061 天前
deepseek v3 0324实现工作流编辑器
前端·css·编辑器·deepseek
txz20351 天前
CMake在Windows环境下Visual Studio Code的使用
ide·vscode·编辑器
代码很单纯,复杂的是人。1 天前
platfromIO(VScode)串口print输出中文乱码
ide·vscode·编辑器
大哥喝阔落1 天前
vscode_拼写关闭
ide·vscode·编辑器