sublime text插件开发
手工开发了一些ST的py插件,记录过程中遇到的一些问题。
ST3/ST4 begin_edit问题
报错:
begin_edit() missing 2 required positional arguments: 'edit_token' and 'cmd'
ST3时已经不能直接调view.begin_edit方法了,需要通过runCommand+TextCommand转一手,写法如下:
class ShowEnvVarsInternalCommand(sublime_plugin.TextCommand):def run(self, edit, input):self.view.set_read_only(False)self.view.insert(edit, 0, input)self.view.end_edit(edit)self.view.set_read_only(True)class ShowEnvVarsCommand(sublime_plugin.WindowCommand):def run(self):self.var_names = list(os.environ.keys())self.window.show_quick_panel(self.var_names, self.disp_var)def disp_var(self, index):if index != -1:var = self.var_names[index]str = '\n'.join(os.environ[var].split(';')) output_view = self.window.create_output_panel("env_var") self.window.run_command("show_panel", {"panel": "output.env_var"})# 这里在ST2里是直接调用output_view.begin_edit,然后对Edit对象做insert,这里改为调用output_view.run_command方法,把请求转给TextCommand,后者的run方法可以直接拿到Edit对象。output_view.run_command('show_env_vars_internal', {"input": str})self.window.focus_view(output_view)
sublime.set_timeout的用途
用于在工作线程里访问ST的界面,因只有主线程才能刷新ST界面,set_timeout相当于“工作线程向主线程发消息”。
exec命令
通过查看exec.py源码,得知:
exec是异步的,也就是说,ST主线程不会等待exec完成才返回,相反,它立刻返回,而exec进程的输出被异步(通过起线程的方式)的追加到output.exec窗口里。因此,当你run_command后立刻从output.exec里拿结果,只会得到空。
为何ST主线程不会等待呢?因为这是一个GUI程序,一旦主线程等待,界面就会僵死。
ST插件API说明
ST4的API文档
相关文章:
sublime text插件开发
手工开发了一些ST的py插件,记录过程中遇到的一些问题。 ST3/ST4 begin_edit问题 报错: begin_edit() missing 2 required positional arguments: edit_token and cmdST3时已经不能直接调view.begin_edit方法了,需要通过runCommandTextComm…...

【Linux网络】网络层协议:IP
本篇博客整理了 TCP/IP 分层模型中网络层的 IP 协议,旨在让读者更加深入理解网络协议栈的设计和网络编程。 目录 一、网络层 二、IP 报头 1)报头与有效载荷的分离 2)有效载荷的上交 3)源 IP 与目的 IP 4)生存时间…...
分布式接口文档聚合,Solon 是怎么做的?
1、分布式接口文档聚合,是什么? 如果你有 “22” 个不同的服务(比如微服务),每个服务都有自己的接口文档。每个服务的文档各自打开,估计你会觉得很麻烦的? 再如果,它们是用 openap…...

多尺度病理图像纹理特征作为肺腺癌预后预测的新指标|文献精读·24-08-09
小罗碎碎念 这一期推文分享的文献是2022年发表于 Journal of Translational Medicine 的一篇文章,目前IF6.1。 这篇文章值得刚入门病理AI领域的老师/同学仔细研读,因为思路清晰,该讲到的流程基本都涉及了,详细讲述了病理图像的各种…...
RAG+Agent项目实践系列:基于本地菜谱知识库的大语言模型RAG+Agent的解决方案设计和实现
RAG+Agent项目实践系列:基于本地菜谱知识库的大语言模型RAG+Agent的解决方案设计和实现 为 A 项目构建一个基于菜谱知识库的问答机器人,由业务方提供一系列菜谱知识库和公司概况介绍材料,根据这些知识库要求实现一个问答机器人: 实现用户对于机器人自我身份和公司情况的回…...

JupyterNotebook添加Anaconda中已有的虚拟环境
比如,在Acaconde中存在一个我已经配置好的虚拟环境pose,现在我想在Jupyter中使用它 那么可以使用ipython kernel install --user --name 你要添加的环境 添加到Jupyter中。 对于Jupyter中已有的代码,就可以在Kernel - chanage kernel中改变内核。...

利用vscode-icons-js在Vue3项目中实现文件图标展示
背景: 在开发文件管理系统或类似的项目时,我们常常需要根据文件类型展示对应的文件图标,这样可以提高用户体验。本文将介绍如何在Vue3项目中利用vscode-icons-js库,实现类似VSCode的文件图标展示效果。 先看效果: 一…...

某赛通电子文档安全管理系统 CDGAuthoriseTempletService1 SQL注入漏洞复现(XVE-2024-19611)
0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…...

做个一套C#面试题
1.int long float double 分别是几个字节 左到右范围从小到大:byte->short->int->long->float->double 各自所占字节大小:1字节、2字节、4字节、8字节、4字节、8字节 2.System.Object四个公共方法的申明 namespace System {//// 摘要…...

【ML】Pre-trained Language Models及其各种微调模型的实现细节和特点
Pre-trained Language Models及其各种微调模型的实现细节和特点 1. Pre-trained Language Models2. semi-supervised Learning3. zero-shot4. Parameter-Efficient Fine-Tuning4.1 含义:4.2 实现方式: 5. LoRA5.1 LoRA 的主要特点:5.2 LoRA 的…...
YARN单机和集群环境部署教程
目录 一、YARN 单机环境部署1. 环境准备2. 安装 Java3. 下载并安装 Hadoop4. 配置环境变量5. 配置 Hadoop配置 hadoop-env.sh配置 core-site.xml配置 hdfs-site.xml配置 yarn-site.xml配置 mapred-site.xml 6. 格式化 HDFS7. 启动 Hadoop 和 YARN8. 验证 YARN9. 运行一个简单的…...
Android SurfaceFlinger——Vsync信号发送(五十二)
通过上一篇文章我们创建了一个 EventThread 线程,并且它持有了 SurfaceFlinger 中 resyncWithRateLimit() 方法的指针。这里我们主要来看一下 EventThread 对信号的处理。 一、发送Vsync信号 当 SurfaceFlinger 执行完 queueBuffer() 方法之后,通过 onFrameAvailable 又会回…...

零基础5分钟上手亚马逊云科技AWS核心云架构知识-用S3桶托管静态网页
简介: 小李哥从今天开始将开启全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,让大家0基础5分钟通过这篇文章就能完全学会亚马逊云科技一个经典的服务开发架构。 我将每天介绍一个基于亚马逊云…...

YOLO:使用labelme进行图片数据标签制作,并转换为YOLO格式
作者:CSDN _养乐多_ 本文将介绍如何使用 labelme 进行图片数据标签制作的方法,并将标签的格式从 JSON 格式转换为 YOLO 格式。 文章目录 一、安装labelme二、使用流程三、json格式转为YOLO格式四、按比例划分数据集(训练、验证、测试&#…...

论文解读(15)-UrbanGPT
加油,这一篇也是感受一下大语言模型的力量! 原文: UrbanGPT: Spatio-Temporal Large Language Models UrbanGPT: Spatio-Temporal Large Language Models (arxiv.org) 参考: 时空预测与大语言模型的奇妙碰撞!UrbanG…...

大数据湖体系规划与建设方案(51页PPT)
方案介绍: 大数据湖通过集中存储各种类型的数据(包括结构化、半结构化和非结构化数据),提供了更加灵活、可扩展的数据处理和分析能力。其核心理念是“存储一切,分析一切,创建所需”,即将所有数…...

8月最新ChatGPT系统源码SparkAi系统,支持AI换脸+智能体GPTs应用+AI绘画+AI视频+文档分析
一、文章序言 人工智能技术正在快速发展,AI语言模型、AI绘画和AI视频已经在多个领域得到了广泛应用。这些技术不仅在科技创新方面表现出色,还在艺术创作、内容生产和商业应用中展示出巨大的潜力。 SparkAi创作系统是一款基于ChatGPT和Midjourney开发的…...
Linux知识复习第3期
目录 网络管理 (1)查看IP信息: (2)配置临时生效的网络连接 (3)修改配置文件配置网络连接(network服务) (4)shell脚本批量IP设置 网络管理 Linux网络管理-CSDN博客 (1)查看IP信息: route -n ip addr (2)配置临时生效的网络连接 ip -4…...

【独家原创】基于NRBO-Transformer多特征分类预测【24年新算法】 (多输入单输出)Matlab代码
【独家原创】NRBO-Transformer分类 Matlab代码 基于牛顿拉夫逊优化算法优化Transformer的数据分类预测,Matlab代码,可直接运行,适合小白新手 NRBO优化的超参数为:自注意力机制中的头数、正则化系数、初始化学习率 1.程序已经调试…...
Debezium日常分享系列之:Debezium 3.0.0.Alpha2 Released
Debezium日常分享系列之:Debezium 3.0.0.Alpha2 Released 一、重大改变基于Kafka3.8构建 二、新功能和改进JDBC SinkDebezium ServerGoogle SpannerVitess Debezium 3.0.0.Alpha2 版本包含许多新功能和改进,包括基于 Kafka 3.8 构建、JDBC 接收器连接器的…...

Webpack的基本使用 - babel
Mode配置 Mode配置选项可以告知Webpack使用相应模式的内置优化 默认值是production(什么都不设置的情况下) 可选值有:none | development | production; 这几个选项有什么区别呢? 认识source-map 我们的代码通常运行在浏览器…...

XXTEA,XTEA与TEA
TEA、XTEA和XXTEA都是分组加密算法,它们在设计、安全性、性能等方面存在显著区别。以下是它们的主要区别: 密钥长度 TEA:使用128位密钥。 XTEA:通常使用128位或256位密钥。 XXTEA:密钥长度更灵活,可以使用任…...
Visual Studio 中的 MD、MTD、MDD、MT 选项详解
在Visual Studio中开发C++项目时,正确选择运行时库(runtime library)对于确保应用程序的性能、稳定性和兼容性至关重要。本文将详细介绍/MD, /MT, /MDd, 和 /MTd这些编译器选项的意义、应用场景及其区别。 MSVCRT.dll MSVCRT.dll 是 Microsoft Visual C++ Runtime Library …...

TLV4062-Q1、TLV4082-Q1迟滞电压比较器应用笔记
文章目录 主要作用应用场景关键优势典型应用示意图TLV4062-Q1 和 TLV4082-Q1 的主要作用及应用场景如下: 主要作用 精密电压监测:是一款双通道、低功耗比较器,用于监测输入电压是否超过预设阈值。 集成高精度基准电压源(阈值精度1%),内置60mV迟滞功能,可避免因噪声导致的…...
【Prompt实战】国际翻译小组
本文原创作者:姚瑞南 AI-agent 大模型运营专家/音乐人/野生穿搭model,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。&#…...

基于SpringBoot+Vue2的租房售房二手房小程序
角色: 管理员、房东、租客/买家 技术: springbootvue2mysqlmybatispagehelper 核心功能: 租房售房小程序是一个专注于房屋租赁和销售的综合性平台,基于SpringBootVue2MySQLMyBatisPageHelper技术栈开发,为用户提供…...
React---扩展补充
一些额外的扩展 4.3 高阶组件 高阶组件是参数为组件,返回值为新组件的函数; 高阶组件 本身不是一个组件,而是一个函数;其次,这个函数的参数是一个组件,返回值也是一个组件; import React fr…...

C# 委托UI控件更新例子,何时需要使用委托
1. 例子1 private void UdpRxCallBackFunc(UdpDataStruct info) {// 1. 前置检查防止无效调用if (textBoxOutput2.IsDisposed || !textBoxOutput2.IsHandleCreated)return;// 2. 使用正确的委托类型Invoke(new Action(() >{// 3. 双重检查确保安全if (textBoxOutput2.IsDis…...
[论文阅读] 软件工程 | 如何挖掘可解释性需求?三种方法的深度对比研究
如何挖掘可解释性需求?三种方法的深度对比研究 研究背景:当软件变复杂,我们需要“说明书” 想象你买了一台智能家电,却发现它的运行逻辑完全看不懂,按钮按下后毫无反应,故障时也不提示原因——这就是现代…...
Elasticsearch中的语义搜索(Semantic Search)介绍
Elasticsearch中的**语义搜索(Semantic Search)**是一种基于文本语义理解的搜索技术,它能够超越传统的关键词匹配,识别查询与文档之间的语义相关性,从而提供更精准、更符合用户意图的搜索结果。这种技术通过捕捉文本背后的含义、上下文和概念关联,解决了传统搜索中常见的…...