有关Monaco的使用疑惑
创始人
2024-04-23 20:24:46
0

前言

学习monaco editor已经有三个多月了。阅读了大部分的的文档,也看了很多相关文章,也调研了一些使用它做的大型开源项目。 一开始的疑惑已经逐渐解开,但随着学习的深入,也遇到了比较奇怪的问题。这篇文件就来聊一聊,解开的那些疑惑,以及那些没解开的疑惑。

解开和未解开的疑惑

monaco中切换文件内容,只是更改编辑器的语言模型,在这一过程中,还能够保证打开文件的光标交互状态。

一开始我以为monaco的双列显示,是可以利用自身的api实现的,但目前我还没找到这样的api,我想双列显示大概实质就是两个editor 实例。 后面还会不断探索。

令我想不通的是monaco中的changeViewZones 方法,它可以实现在编辑器中开辟一个区域,并且不影响现有的行号显示。但是使用它所注入的dom元素,去无法聚焦,被点击。试了很多个方法也没找到。这要么是一个特性,要么是一个bug。此外这个api很奇葩的地方是,你要改变changeViewZones 注入的元素,必须还要使用changeViewZones 。修改,移除。即使你把 回调函数中的changeAccessor给一个变量,依然不行。必须写到changeViewZones中。 这又是一个特性(bug)?

如果说上面的问题,50%几率是特性,50%几率是bug。那么接下来这个就是 70%放入bug,30%几率是特性。就是registerHoverProvider API。这个为某一个rang添加hover交互效果的api。内容可以是markdown。这个api比较不方便的是,调用一次只能为一个rang添加hover内容,如果我想为多个单词添加hover内容,那么就必须调用多次,非常的不合理。其实这还能忍一忍,重要的这个api,在目前的最新版0.34.1有不符合预期的行为。以下这个是官方的registerHoverProvider 例子。它将rang 设置了文件的内容range(最大值),这样只要鼠标放到内容上,就会出现效果。但其实,你将range改为(1,1,1,1) 依然能够达到该效果
在这里插入图片描述
这是完全不符合预期值的。期望是,只有当鼠标放到range中之内才会显示设置的hover内容。
难道是我这个菜鸟理解错了(遇到想不通的问题,要么是自己知识不够,要么就是对方做错了。)。大家可以试一试点击链接测试一个该案例。
https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-hover-provider-example。

另外发现的一个小问题,就是有关创建editor时的150个配置参数中的 snippetSuggestions
该参数可以配置,在自动完成时,是否可以自动完成代码块, 文档上写的很清楚,该配置项,枚举值有
"none" | "top" | "bottom" | "inline" 但是默认值确实 true
在这里插入图片描述
不是我较真,最后我通过editor.getOption(102) 获取的snippetSuggestions 配置项确实是 true
所以,枚举值是不是少了一个true ? @monaco-editor官方。

该配置项的解释
https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.IStandaloneEditorConstructionOptions.html#snippetSuggestions

就先写这么多吧,后面有了疑惑再补充。

相关内容

热门资讯

书籍摆放造型:为家里增添文艺小... 哎呀,说到书籍摆放造型,我这心里头就冒出一股子暖流。你知道吗,书不只是知识的海洋,它们还是家里的小风...
vmware freebsd-... 哎呀,说到FreeBSD和VMware,这可真是一对让人又爱又恨的组合啊!想象一下,你手上有个强大又...
卡西欧手表三个小表盘-卡西欧手... 嘿,朋友们,今天咱们聊聊那些常常被忽视的小东西——卡西欧手表上的三个小表盘!没错,就是那些看起来不起...
shell脚本学习指南 pdf... 嘿,大家好!今天我要给大家带来一个超级棒的消息,那就是我们的《Shell脚本学习指南》PDF版可以下...
肛门失禁能治疗吗-肛门失禁虽尴... 嘿,朋友们,今天咱们聊聊一个有点尴尬但又不得不面对的话题——肛门失禁。这事儿听起来就让人皱眉头,对吧...
了解克罗恩病的六大标准,助你战... 哎呀,说到克罗恩病,这可不是什么好玩意儿!这小怪兽时不时就在我肚子里闹腾,真让人头疼。医生告诉我,要...
朝阳医院病案科电话:快节奏都市... 在这个快节奏的都市生活中,朝阳医院病案科电话成了一个神奇的联系点,它不仅仅是一串数字,更是一段段人生...
windows应用商店安装位置... 大家好呀,我今天真是有点小抓狂,想跟大家聊聊我们亲爱的Windows应用商店,那个总是让人又爱又恨的...
iobit unlocker下... 哎呀,大家有没有遇到过那种文件被莫名其妙地锁定,想删删不了,想改改不动的抓狂时刻?我可是深受其害啊!...
全国重名查询系统 百度-全国重... 大家好,我今天真的是超级兴奋,要给大家带来一个超级酷炫的消息——全国重名查询系统,这玩意儿简直太神奇...
linux与windows-L... 大家好,我是个对电脑操作系统又爱又恨的普通用户。今天咱们就来聊聊Linux和Windows这对“冤家...
xp纯净版系统下载原版-找回简... 嘿,各位老铁们,今天咱们聊聊那个让人又爱又恨的XP系统!你们还记得那个蓝天白云的桌面吗?那种简洁到让...
根据身份证号码查姓名-身份证号... 哎呀,说到这个身份证号码查姓名的事儿,真是让人又好奇又紧张!你知道吗,每个人的身份证号码就像是一串神...
informix-探索神秘的 ... 大家好,我是你们的数据库小弟,今天我要聊聊那个让我心情复杂的家伙——Informix。哎呀,说起这个...
风林火山日本电影-风林火山:一... 嘿,朋友们,今天我想聊聊那部让我心跳加速的电影——《风林火山》。这不仅仅是一部电影,它是一场穿越时空...
带raid驱动的win2024... 哎呀,说到这个Win2024配上RAID驱动,我这心里啊,真是五味杂陈!你知道吗,每次我开机看到那熟...
欧姆龙编码器说明书-欧姆龙编码... 哎呀,说到这个欧姆龙编码器啊,真是让人又爱又恨!你知道吗,这个小东西虽然看起来不起眼,但它可是控制着...
net framework 4... 哎呀,说到NETFramework4.52,这可真是我编程路上的老朋友了!每次打开电脑,不管是要写个...
linux运行apk文件-如何... 嘿,大家好!今天咱们聊聊一个挺有趣的话题——Linux系统上跑APK文件。是不是听起来就有点像两个平...
nvvsvc.exe可以禁止吗... 哎呀,说到这个nvvsvc.exe,我这心里就一阵烦躁!你知道吗,每次电脑卡得像老牛拉破车,我就恨不...