国产编辑器EverEdit - 兼具小巧、灵活、强大的语法着色管理

1 设置-语法着色

1.1 应用场景

  EverEdit虽然已经内置了大量的语法着色文件,但仍然不能覆盖所有的行业,如果您正在工作的行业特殊文件没有被EverEdit收录,您可以自行编写语法着色文件,并达到和主流编程语言一样的显示和辅助效果。

  本文以作者日常使用的awk语言为例,介绍如何编写自己行业的语法着色文件。

1.2 准备工作

在编写语法文件前,先思考以下几个问题

  • 文件扩展名 必选:源文件使用什么扩展名? 是否没有扩展名?
  • 是否有定制工具 可选:使用特定的可执行程序对源文件进行编译/解释/调试?
  • 是否有模式工具 可选:模式工具是对特定的源文件类型定制的一组工具集合
  • 如何分析大纲 可选:使用正则表达式简单提取函数名?还是使用ctags分析?或者自己编写分析脚本?
  • 定义哪些代码片段 可选:代码片段是一类小段代码集合,具有高复用性,可以提高工作效率。参考:代码片段管理
  • 关键字清单 必选:关键字、内置函数、内置变量/宏、关键字是否大小写敏感
  • 括号匹配 可选:(), \[\], {}等。
  • 注释规则 可选:行注释、块注释规则。
  • 字符串规则 可选:引号/单引号或其他特殊规则。
  • 代码折叠规则 可选:代码折叠开始规则、代码折叠结束规则。

1.3 使用方法

1.3.1 基本配置

  1. 步骤1 :选择主菜单工具 -> 设置 -> 语法着色,弹出如下窗口

  2. 步骤2 :单击添加按钮,并进行参数设置

  • 标题:设置语法文件名称,比如:AWK
  • 语法文件:语法文件定义了关键字高亮,行注释/块注释,折叠规则等,语法文件保存在EverEdit安装目录的syntax文件夹。
  • 扩展名:源文件的扩展名,比如:AWK语言的源文件扩展名为"awk"。
  • 制表符:表示制表符的宽度(占几个英文字符),推荐配置为4。
  • 使用空格代替制表符:即在源文件中不出现制表符,用户按下Tab键会插入4个空格(根据制表符参数配置的数目)。
  • 列标记:在编辑窗口的指定列显示"竖线",参考:符号显示详解
1.3.1.1 扩展名补充配置

  扩展名是识别文档类型的关键配置,文件如果没有扩展名,将无法判断文件类型,也无法显示语法高亮,此时默认会按TXT文件格式显示(没有高亮)。

  EverEdit额外补充了根据文件内容判断文档类型的功能,但只能判断文件首行。

单击更多按钮,会弹出语法着色匹配规则窗口:

  • 文件名的匹配规则:优先级最高的规则是文件名规则 ,比如:*.awk,表示所有以"awk"扩展名结尾的文件都按AWK文档类型处理。
  • 文件首行的匹配规则:设置正则表达式,如果文件首行匹配这个正则表达式,则认为是AWK文档类型。该规则只有在文件名没有匹配成功时才会生效,可以判断某些没有文件扩展名的文档类型。

🕮说明
为什么通过文件首行可以判断文件类型?
一般在Linux系统编写脚本,首行都会有一条特殊注释,它告诉系统用哪个命令来执行该文件,如果缺失该注释,脚本将无法运行。
示例1 :Linux下的Bash脚本,文件首行必须有
#! /bin/bash

示例2 :Linux下的awk脚本,文件首行必须有
#! /bin/awk

  配置首行匹配规则后,使用EverEdit打开没有扩展名的awk文件也可以正常显示语法高亮 ,如下图所示:

1.3.2 配置工具与大纲

  1. 步骤1 :在语法着色窗口单击高级按钮,弹出高级窗口,如下图所示:

  2. 步骤2 :设置工具和模式【可选】
    工具分组参考:外部工具

    设置工具分组后,工具栏上的外部工具按钮会根据文档类型只显示对应的工具分组,如下图所示:

注:主菜单上的外部工具不会根据文档类型显示或隐藏。

模式将在后续章节介绍。

  1. 步骤3 :设置帮助文件【可选】

    帮助文件为chm格式文件,设置帮助文件后,选择主菜单帮助 -> 关联帮助会打开对应文档类型的帮助文件。

  2. 步骤4 :设置大纲视图【可选】

    大纲视图的配置方法可以参考:大纲视图

其他配置:

  • 语法着色的单行最大长度:该值建议保持默认设置,设置过大会影响语法解析性能。
  • 保存时自动删掉行尾的空格:删除行尾空格,减少文件体积,确保源文件干净。
  • 保存时确保最后一行有一个空白行:文件末尾保留一个空行,这个设置主要是为了保证兼容性,早期部分编辑器或C/C++编译器要求源文件末尾以空行结束,否则编译时会出现告警。

1.4 编写语法着色文件

  一般不建议从0开始编写语法文件,很多语言的语法文件都相通,可以在syntax目录拷贝一份进行修改。

语法着色文件编写指导:语法着色

如果上述链接访问故障,可以尝试访问:语法着色-博客园


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

Copyright © 2022~2024 All rights reserved.

相关推荐
VidDown13 天前
VidDown 工具站:免费、本地优先的开发者工具箱
javascript·编辑器·音视频·视频编解码·视频
VidDown13 天前
显卡处理视频技术详解:从硬解码到 NVENC,GPU 如何让视频处理起飞?
javascript·编辑器·音视频·视频编解码·视频
夜猫逐梦13 天前
【UE基础】03.蓝图与编辑器工作流
编辑器·ue·蓝图·ue编辑器
VidDown13 天前
视频帧率技术详解:从 24fps 到 120fps,帧率如何影响你的观看体验?
网络·网络协议·编辑器·音视频·视频编解码·视频
爱就是恒久忍耐13 天前
VSCode里如何比较2个branch
ide·vscode·编辑器
bloglin9999913 天前
vscode中可视化的合并分支,在“合并编辑器中解析”中“与基线进行比较”是什么意思
ide·vscode·编辑器
zyplayer-doc14 天前
企业知识库安全与权限管理完全指南:从加密到审计的六层防护
人工智能·安全·pdf·编辑器·创业创新
古德new14 天前
鸿蒙PC迁移:Photoflare Qt 图片编辑器鸿蒙PC适配全记录
qt·编辑器·harmonyos
春日见14 天前
vscode的AI编程插件推荐:
大数据·ide·vscode·算法·机器学习·编辑器·ai编程
jieshenai14 天前
VScode sys.path,并使CTRL+左键可访问源码
ide·vscode·编辑器