vscode插件快餐教程(8) - LSP文本同步
vscode插件快餐教程(8) - LSP文本同步
这一节开始我们介绍下通过LSP进行文本同步的方法。
文件打开
我们先从简单的做起,先监听文件的打开。
我们看一下LSP协议中对此部分的支持,参数是DidChangeTextDocumentParams结构。
微软的SDK在LSP的基础上是做了封装的,我们看下封装后的接口:
当前,TextDocument提供了4个属性:
- uri: 文件的URI
- version: 文件的版本号
- languageId: 编程语言
- lineCount: 有多少行
另外还有3个函数: - getText(): 获取文本
- positionAt和offsetAt用于Position和offset的转换
我们来看个例子:
documents.onDidOpen( (event: TextDocumentChangeEvent) =>
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python计算器(模拟eval)
目的:实现同Python中eval函数一样,对于复杂算术运算提供一个简易的计算器;思路:1、通过正则表达式,将运算式子中所有的数字和运算符分割开来形成类表的方式,然后可以方便列表检索进行运算,eq_format(eq)函数;2、通过列表的检索,通过递归的运算,一层层的剥离掉(),然后进行+,-,*,/,最终得到完全没有括号的算式,进行最后一步的运算,期间需要处理+-,--的情况出现,主要涉及到change(eq,count)函数;(对于()剥离的情况,主要是通过遍历列表,如果遇到左括号,则把当前左括号的索引赋值给参数bracket,直到遇到第一个右括号,此时的索引与bracket中间的元素即为最内层括号的元素,用切片的方式提取出来,通过 calculate() 函数计算出值,然后用计算结果去替换掉此时左括号到第一个右括号的元素,此时去除第一层括号,然后进入递归,不断递归直至去除所有括号;可能遇到的问题: 不要用index的方式去取当前左括号的索引,因为列表的index方法返回的一直都是第一个左括号的索引,而不是当前左括号的索引,会导致出错。因此在函数内用参数 自定义的参数count 进...
- 下一篇
java数据脱敏处理,手机号,身份证号和银行卡号打码展示
java数据脱敏处理,手机号,身份证号和银行卡号打码展示 结果图如下 20:17:51.730 [main] INFO com.lockbur.open.AppTest - 手机号 136****4724 20:17:51.740 [main] INFO com.lockbur.open.AppTest - 手机号 13**** 20:17:51.741 [main] INFO com.lockbur.open.AppTest - 邮箱 845****22@qq.com 20:17:51.741 [main] INFO com.lockbur.open.AppTest - 邮箱不够四位 22****@qq.com 20:17:51.742 [main] INFO com.lockbur.open.AppTest - 邮箱错误 22qq.com 20:17:51.742 [main] INFO com.lockbur.open.AppTest - 假身份证号 132****99308084911 1 先引入commons-lang3,这个基本每个项目都用到 <dependency&...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果