Monaco 使用 SelectionRange

news2024/11/13 7:50:59

Monaco 中有个展开选择的功能,默认如果我们选择 function,扩展选择就会选择到行尾,再扩展就会选中整个函数,效果如下:

在这里插入图片描述
Monaco 可以自定义选择范围,通过 registerSelectionRangeProvider 注册 selectionRangeProvider 处理函数

在这里插入图片描述
实现 provideSelectionRanges 并返回选择范围

在这里插入图片描述
返回位置信息 SelectRange
在这里插入图片描述
代码实现如下

export function selectionRangeProvider(
  editor: monacoEditor.editor.IStandaloneCodeEditor,
  monaco: typeof monacoEditor
) {
  return monaco.languages.registerSelectionRangeProvider("mySpecialLanguage", {
    provideSelectionRanges: function(model, positions, token) {
      const ranges = positions.map(position => {
          const word = model.getWordAtPosition(position);
        if (word) {
            
              const range = 
                  new monaco.Range(
                      position.lineNumber,
                      word.startColumn,
                      position.lineNumber,
                      word.endColumn
            )
              
          return [{range: range}];
          }
        return [{ range: new monaco.Range(position.lineNumber, position.column, position.lineNumber, position.column) },
        { range: new monaco.Range(position.lineNumber, position.column, position.lineNumber, position.column) }]
        
        ;
      });
      return ranges;
  }
});

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967805.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

yarn运行失败

目录 1.项目初始化失败2.powershell管理身份运行3.正常4.项目启动5.接下来安装yarn过程 使用vuepress构建静态文档网站1.标题This is an H1This is an H2 this is H1this is H2this is H6 2.字体3.分割线4.引用引用接着 5.列表无序列表有序列表 6.表格7.代码 1.项目初始化失败 …

【通俗理解】主动推理模型——从感知到决策的智慧桥梁

【通俗理解】主动推理模型——从感知到决策的智慧桥梁 主动推理模型的类比 你可以把主动推理模型比作一个“智慧导航仪”,它能够帮助我们的大脑在感知世界、更新信念和做出决策的过程中找到最佳路径。 主动推理模型的核心作用 组件/步骤描述感知世界大脑通过感官接…

在vue3的开发环境中为什么使用vite而不是用webpack

1、vite在开发阶段没有打包过程,直接启动一个服务器 2、请求一个模块到开发服务器 3、开发服务器编译模块,根据页面用所需要的依赖去加载文件 4、加载完成后,开发服务器把编译的结果返回给页面 这使得提高了我们在开发阶段运行的效率 vite是…

【漏洞复现】搜狗输入法简单绕过Windows锁屏机制

免责申明 本公众号的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息…

群晖NAS结合内网穿透工具实现远程连接内网SFTP服务传输文件

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

ABAP+json格式数据转换时参数为空没传值

CALL METHOD /UI2/CL_JSON>SERIALIZE 我们在ABAP传输json格式数据到外围系统时,会用到这个类方法 /UI2/CL_JSON>SERIALIZE CALL METHOD /UI2/CL_JSON>SERIALIZEEXPORTINGDATA LO_DATACOMPRESS XPRETTY_NAME /UI2/CL_JSON>PRETTY_M…

LiveBOS UploadFile.do 任意文件上传漏洞复现(XVE-2023-21708)

0x01 产品简介 LiveBOS(Live Business Object System)是顶点软件自主研发的以业务对象建模为核心的业务中间件及其集成开发工具,它通过业务模型建立直接完成软件开发的创新模式,支持各类基于WEB的专业应用软件与行业大型应用的开发。LiveBOS系统由三个相对独立的产品构成:…

DBA界中的ACE 是时候谢幕了

很多人把ACE当作神一样去膜拜! 还脑残地帮ACE去宣传,需要对ACE要有敬畏之心! ACE 全称是 America Certification Eloquent 首先由ORACLE公司 (美国公司) 在最近20年推出来的荣耀称号! 授予一些通过OCP,OCM认证的DBA在社区为其产品使用和推广做出贡献的荣耀称号 为什么我们…

实验21.实现 printf

已完成实验 已完成实验链接 简介 实验 21. 实现 printf 总结 简化系统调用和中断,用 eax 代表调用号参数,ebx,ecx,edx 来代表参数(syscall.c kernel.s) 添加 write 的系统调用接口(syscall.c, syscall-init.c, print.s) 注意:要更改 p…

Arbitrum Nitro交易速度压力测试实战:TPS性能评估全解析

Arbitrum Nitro 是一种基于以太坊的 Layer 2 扩展解决方案,旨在提高交易吞吐量并降低交易费用。为了全面评估其性能,我们需要进行了详细的压力测试。本文的目的是回顾一下我在实际测试过程中采用的方法,还有测试的思路。 我们的压力测试主要…

【Docker应用】快速搭建Plik服务结合内网穿透无公网IP远程访问传输文件

文章目录 前言1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 前言 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问,实现随时随地在任意设…

页面路由怎么开发

首先删除它自带的页面 新建页面 Composition API 和 Options API 是 Vue.js 中两种不同的组件写法风格,它们用于定义 Vue 组件的结构和逻辑。我用的是Options API 配置路由 将它修改为需要的,按照上面的写法 如果component里面已经加了那么就不需要在上面加这是一种…

C++数据结构重要知识点(4)(map和set封装)

前面我们已经实现了红黑树,接下来我们需要将这个数据结构封装成map和set两个容器,其中很多地方的处理都有一定难度,下面会按照我的思路讲解map的改造 map成员变量如下,如果是第一次看到它,那么一定会很陌生&#xff0…

C高级(学习)2024.8.1

目录 shell命令 数组 数组的赋值 数组的调用 遍历数组 函数 函数的定义方式 函数调用 分文件编程 源文件 头文件 include引用时“”和<>的区别 编译工具 gcc编译工具 gdb调试 make工具 定义 Makefile格式 Makefile管理多个文件 Makefile变量 自定义…

发布NPM包详细流程

制作 首先需要制作一个npm包。 按照以下步骤依次执行。 mkdir my-npm-package cd my-npm-package npm init 相信这一步不需要过多的解释&#xff0c;就是创建了一个文件夹&#xff0c;然后初始化了一下文件夹。 然后在生成的package.json文件夹中更改一下自己的配置&…

Python-docx,修改word编辑时间总计、创建时间、上次修改时间、作者、上次修改者、备注

Python版本3.9&#xff0c;Python-docx版本1.1.2 修改下图中红框内的信息 创建时间、上次修改时间、作者、上次修改者、备注&#xff0c;这些都有接口&#xff0c;调用 import docx from docx import Document from docx.oxml.ns import qn from docx.shared import Inches, …

“2028年互联网上所有高质量文本数据将被使用完毕”

研究公司Epoch AI预测&#xff0c;到2028年互联网上所有高质量的文本数据都将被使用完毕&#xff0c;机器学习数据集可能会在2026年前耗尽所有“高质量语言数据”。研究人员指出&#xff0c;用人工智能(AI)生成的数据集训练未来几代机器学习模型可能会导致“模型崩溃”&#xf…

助力外卖霸王餐系统运营 微客云近期更新汇总

全面助力霸王餐合作运营&#xff0c;给大家汇报下最近微客云更新的内容&#xff0c;说实话近期非常的忙&#xff0c;各种功能上线&#xff0c;各种市场部们反馈的需求&#xff0c;微客云霸王餐招商体系&#xff08;分站&#xff09;自年底上线到现在&#xff0c;不知已更新了多…

2024年8月初AI大赛盛宴来袭!7场赛事等你挑战,最高奖金高达1.4万!

本期为大家带来7场精彩的AI大赛&#xff0c;主要以AI绘画大赛为主打&#xff0c;涵盖1场视频大赛和1场大模型大赛。 其中&#xff0c;以下3场大赛不容错过&#xff0c;分别是“36氪AI PARTNER2024具身智能大会”、“2024年大学生AI艺术季”和“混元万物 LiblibAlx腾讯混元模型…

微型丝杆弯曲:工件精度下降的隐形杀手!

微型丝杆作为精密机械部件&#xff0c;‌其弯曲或变形会对使用它进行加工的工件产生直接影响。在机械加工中&#xff0c;微型丝杆弯曲是一个不容忽视的问题&#xff0c;它会对工件造成多方面的损害。 1、加工精度受损&#xff1a;弯曲会直接导致工具的实际运动轨迹与程序设计的…