• CodingSouls团队项目第二阶段冲刺(2)-个人概况


    第二阶段冲刺第二天:

      学习使用Monaco Editor

      微软之前有个项目叫做Monaco Workbench,后来这个项目变成了VSCode,而Monaco Editor(下文简称monaco)就是从这个项目中成长出来的一个web编辑器,他们很大一部分的代码(monaco-editor-core)都是共用的,所以monaco和VSCode在编辑代码,交互以及UI上几乎是一摸一样的,有点不同的是,两者的平台不一样,monaco基于浏览器,而VSCode基于electron,所以功能上VSCode更加健全,并且性能比较强大。

      首先,我们自己可以设想一下,假如要自己来实现代码补全以及错误提示,我们会怎么做?

      第一,我们要解析输入的文本,这时,我们就需要写一个Parser。

      第二,根据Parser解析的结果来调用monaco的标注接口来标注错误的代码从而实现错误提示功能

      第三,根据Parser解析的结果信息,提供上下文相关的代码候选项来实现代码补全功能。

      可以看出来,实现起来难度会很大,涉及到的点很多,不过,和语法高亮一样,monaco也帮助我们实现了这些功能,目前支持html,css,ts/js,json四种语言,我们只需要引入即可。但是这边的引入可没有语法高亮那么简单。

      Monaco的实现采用worker的方式,因为语法解析需要耗费大量时间,所以用worker来异步处理返回结果比较高效。我们使用的话需要两步。

  • 相关阅读:
    java实现可安装的exe程序
    WINDOWS上使用BAT定期执行备份操作
    Freemaker基于word模板动态导出
    网页静态化Freemarker
    Linux下Mysql每天自动备份
    搭建cas单点登录服务器
    GridView多列排序
    python学习-发送邮件(smtp)
    python3+selenium3学习——发送邮件
    redis相关-基础语法
  • 原文地址:https://www.cnblogs.com/125418a/p/13086636.html
Copyright © 2020-2023  润新知