当前位置: 首页 > news >正文

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

1 开发参考:小众语言如何开发大纲分析脚本

1.1 应用场景

  在使用IDE进行代码开发时,代码中的量、结构体函数等,在大纲视图中都会显示出来,用户可以快速的了解当前文档的结构,以及快速跳转到函数、变量的声明位置。
  很多做的比较好的文本编辑器通过支持ctags工具,编辑器直接读取ctags的分析结果,即可在大纲面板显示大纲,但是对于一些小众语言,ctags并没有提供支持,如果没有很好的IDE支持,小众语言的开发会给用户带来较大的不便。
  另人欣慰的是,EverEdit提供了通用的大纲接口,小众语言的用户可以通过EverEdit脚本来分析大纲,这给用户提供了无限可能。

注:EverEdit自己的Go、Markdown文件的大纲分析,就是通过脚本实现的!

1.2 使用方法

1. 通过脚本生成Outline文件,以下是一个Outline文件的内容

1:5#Imports7:5#errors8:5#internal/filepathlite9:5#os
2:3#Variables17:3#ErrBadPattern
3:0#Functions211: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.

相关文章:

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

1 开发参考:小众语言如何开发大纲分析脚本 1.1 应用场景 在使用IDE进行代码开发时,代码中的变量、结构体、函数等,在大纲视图中都会显示出来,用户可以快速的了解当前文档的结构,以及快速跳转到函数、变量的声明位置。…...

【数据结构】线性数据结构——数组

1. 定义 数组是一种线性数据结构,由一组相同类型的元素组成,这些元素使用连续的内存空间存储。数组通过索引(下标)访问,每个元素的索引是固定的,从零开始递增。 2. 特点 顺序存储: 元素在内存…...

QT---------GUI程序设计基础

代码UI化设计(QT) 实例功能概述 假设我们要创建一个简单的计算器应用程序。该应用程序具有以下功能: 包含数字按钮(0-9)、操作符按钮(、-、*、/)、等于按钮()和清除按…...

2、Bert论文笔记

Bert论文 1、解决的问题2、预训练微调2.1预训练微调概念2.2深度双向2.3基于特征和微调(预训练下游策略) 3、模型架构4、输入/输出1.输入:2.输出:3.Learned Embeddings(学习嵌入)1. **Token Embedding**2. **Position Embedding**3…...

Linux之ARM(MX6U)裸机篇----7.蜂鸣器实验

一,蜂鸣器模块 封装步骤: ①初始化SNVS_TAMPER这IO复用为GPIO ②设置SNVS_TAMPPER这个IO的电气属性 ③初始化GPIO ④控制GPIO输出高低电平 bsp_beep.c: #include "bsp_beep.h" #include "cc.h"/* BEEP初始化 */ void beep_init…...

Zabbix 监控平台 添加监控目标主机

Zabbix监控平台是一个企业级开源解决方案,用于分布式系统监视和网络监视。它由Zabbix Server和可选组件Zabbix Agent组成,通过C/S模式(客户端-服务器模型)采集数据,并通过B/S模式(浏览器-服务器模型&#x…...

SpringCloud整合skywalking实现链路追踪和日志采集

1.部署skywalking https://blog.csdn.net/qq_40942490/article/details/144701194 2.添加依赖 <!-- 日志采集 --><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version&g…...

html文件通过script标签引入外部js文件,但没正确加载的原因

移动端H5应用&#xff0c;html文件通过script标签引入外部js文件&#xff0c;但没正确加载&#xff0c;在移动设备上难以排查。通过PC浏览器打开&#xff0c;发现js被阻止了&#xff1a;blocked:mixed-content。 原因在于&#xff1a; “blocked:mixed - content” 是浏览器的…...

OpenHarmony开发板环境搭建

程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴&#xff01;君志所向,一往无前&#xff01; 0.OpenHarmony 0.1 OpenHarmony OpenHarmony是一款面向全场景、全连接、全智能的…...

【Rust自学】7.6. 将模块拆分为不同文件

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 7.6.1. 将模块的内容移动到其他文件 如果在模块定义时模块名后边跟的是;而不是代码块&#…...

Python入门:8.Python中的函数

引言 在编写程序时&#xff0c;函数是一种强大的工具。它们可以将代码逻辑模块化&#xff0c;减少重复代码的编写&#xff0c;并提高程序的可读性和可维护性。无论是初学者还是资深开发者&#xff0c;深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始…...

MySQL什么情况下会加间隙锁?

目录 一、使用范围条件查询 二、唯一索引的范围查询 三、普通索引的查询 四、间隙锁的锁定规则 五、间隙锁的影响 间隙锁(Gap Lock)是MySQL中的一种锁机制,主要用于防止幻读现象。在MySQL的InnoDB存储引擎中,当事务隔离级别设置为可重复读(Repeatable Read)时,间隙…...

【服务器开发及部署】code-server 显示git graph

在开发一些linux上的内容的时候进程需要在开发机和生产部署上花费大量的时间。 为了解决上述问题,我们今天介绍一款在服务上开发的思路 git + code server + 宝塔 其中需要处理一些问题,此处都有交代 步骤 安装宝塔安装code-server配置插件配置浏览器处理的问题 git版本过低,…...

Linux 终端查看 nvidia 显卡型号

文章目录 写在前面1. 需求描述2. 实现方法方法一&#xff1a;方法二方法三&#xff1a; 参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04 1. 需求描述 Linux 终端查看 nvidia 显卡型号 2. 实现方法 方法一&#xff1a; 执行下列指令&#xff1a; sudo update…...

助你通过AI培训师中级考试的目录索引

嘿&#xff0c;各位看官&#xff01;在您正式踏入接下来的知识小宇宙之前&#xff0c;咱先唠唠几句… 家人们&#xff0c;我跟你们说&#xff0c;我脑一热报名了那个 AI 培训师考试。本想着开启一场知识的奇幻之旅&#xff0c;结果呢&#xff0c;学视频内容的时候&#xff0c;那…...

百度PaddleSpeech识别大音频文件报错

一、背景 公司前同事留下了一套语音识别项目&#xff0c;内部使用百度PaddleSpeech。在项目验收的时候发现无法识别大音频文件&#xff0c;但是可以识别小音频文件。 这套项目是通过python调用的百度PaddleSpeech&#xff0c;然后提供了restful接口&#xff0c;然后java项目可…...

Lucene 漏洞历险记:修复损坏的索引异常

作者&#xff1a;来自 Elastic Benjamin Trent 有时&#xff0c;一行代码需要几天的时间才能写完。在这里&#xff0c;我们可以看到工程师在多日内调试代码以修复潜在的 Apache Lucene 索引损坏的痛苦。 做好准备 这篇博客与往常不同。它不是对新功能或教程的解释。这是关于花…...

RabbitMQ基础篇之快速入门

文章目录 一、目标需求二、RabbitMQ 控制台操作步骤1.创建队列2.交换机概述3.向交换机发送消息4.结果分析5.消息丢失原因 三、绑定交换机与队列四、测试消息发送五、消息查看六、结论 一、目标需求 新建队列&#xff1a;创建 hello.queue1 和 hello.queue2 两个队列。消息发送…...

如何自定义 Kubernetes KubeSphere 默认 Logo:详细实现方案

要将 Pod 中的路径 /opt/kubesphere/console/dist/assets/logo.svg 替换为外部的某个图片&#xff0c;可以通过以下几种方法处理。推荐使用 挂载 ConfigMap 或 Secret 的方式&#xff0c;因为它是 Kubernetes 原生的、可持续的解决方案。 方法 &#xff1a;使用 ConfigMap 挂载…...

标准库以及HAL库——按键控制LED灯代码

按键控制LED本质还是控制GPIO,和点亮一个LED灯没什么区别 点亮一个LED灯&#xff1a;是直接控制输出引脚&#xff0c;GPIO初始化推挽输出即可 按键控制LED&#xff1a;是按键输入信号从而控制输出引脚&#xff0c;GPIO初始化推挽输出一个引脚以外还得加一个GPIO上拉输入 但是…...

OFA模型解析Mathtype公式截图:辅助数学内容无障碍访问

OFA模型解析Mathtype公式截图&#xff1a;辅助数学内容无障碍访问 1. 引言 想象一下&#xff0c;你面前有一份重要的学术论文或者一份数学教材&#xff0c;但其中关键的公式部分&#xff0c;对你来说却是一片空白。这不是因为公式不存在&#xff0c;而是因为你的眼睛无法直接…...

艾尔登法环帧率解锁终极指南:告别60FPS限制的完整方案

艾尔登法环帧率解锁终极指南&#xff1a;告别60FPS限制的完整方案 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/Eld…...

Shell应用手册(一) 1.什么是 Shell?

Shell应用手册(一) 1.什么是 Shell&#xff1f;一句话总结&#xff1a;Shell 是操作系统的"翻译官"&#xff0c;它站在用户和内核之间&#xff0c;把你说的"人话"翻译成计算机能懂的"机器话"。一、先从一个生活场景说起 想象一下你去国外餐厅吃饭…...

DockerUI仪表板定制终极指南:7步打造个性化监控界面

DockerUI仪表板定制终极指南&#xff1a;7步打造个性化监控界面 【免费下载链接】ui-for-docker A web interface for Docker, formerly known as DockerUI. This repo is not maintained 项目地址: https://gitcode.com/gh_mirrors/ui/ui-for-docker DockerUI是一个基于…...

如何解决Oracle JDBC驱动版本的兼容性问题_ojdbc8.jar与JDK版本的对应关系

不是。ojdbc8.jar 支持JDK 8及以上&#xff08;含11/17/21&#xff09;&#xff0c;关键看运行时JVM版本≥8&#xff1b;它实现JDBC 4.2规范&#xff0c;兼容Oracle 11g至21c&#xff0c;非仅限JDK 8。ojdbc8.jar 真的只支持 JDK 8 吗&#xff1f;不是。ojdbc8.jar 是 oracle 官…...

java凉了?985硕士都在偷偷学的大模型

Java就算了吧&#xff0c;太卷了&#xff0c;尤其现在大环境下&#xff0c;更卷了。连外包要求本科了&#xff0c;还要求经验&#xff0c;经验再多又不行了&#xff0c;因为触碰35红线了。。。 加上现在低代码平台正在吃掉CRUD基础岗&#xff0c;也就是说Java的话你一毕业就很难…...

启道BIM协同设计系统牵手郑州腾飞建设工程集团有限公司

郑州腾飞建设工程集团有限公司介绍郑州腾飞建设工程集团有限公司成立于2005年&#xff0c;是一家以建筑工程、市政公用工程、公路工程施工为核心&#xff0c;并涵盖地产开发、园林绿化等业务的综合性建设集团。公司前身为1958年成立的许昌市市政工程公司&#xff0c;历经数次改…...

侧信道攻击防御指南:从智能家居到云服务器的7个关键防护措施

侧信道攻击防御指南&#xff1a;从智能家居到云服务器的7个关键防护措施 在数字化浪潮席卷全球的今天&#xff0c;数据安全已成为企业生存的命脉。然而&#xff0c;当大多数安全团队还在与传统的网络攻击周旋时&#xff0c;一种更为隐蔽的威胁正在悄然蔓延——侧信道攻击。这种…...

OpenClaw+Qwen3-14b_int4_awq:自动化文档生成工具

OpenClawQwen3-14b_int4_awq&#xff1a;自动化文档生成工具 1. 为什么需要自动化文档生成 作为一名技术写作者&#xff0c;我经常面临一个困境&#xff1a;代码写完了&#xff0c;文档却迟迟无法完成。每次面对空白的Markdown文件&#xff0c;总有种无从下笔的感觉。更糟糕的…...

生化与分子生物学是搞不定导师的脑子的

偶然看到这个图&#xff0c;决定喷一下。为什么呢&#xff0c;因为我高三时候对生化与分子生物学非常感兴趣&#xff0c;我天生对精妙的结构架构比较痴迷&#xff0c;有研究和欲望。甚至考研都想考这个专业。我虽然不知道现在生化和分子生物领域硕博和导师们都在研究什么课题&a…...