zoukankan      html  css  js  c++  java
  • 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来异步处理返回结果比较高效。我们使用的话需要两步。

  • 相关阅读:
    git diff的使用
    composer安装特别慢的解决方案
    laravel5.5 excel的安装和使用
    laravel中有条件使用where
    数据结构10——强连通
    数据结构9——桥
    数据结构8——割点
    数据结构7——费用流
    数据结构6——网络流
    数据结构5——二分图匹配
  • 原文地址:https://www.cnblogs.com/125418a/p/13086636.html
Copyright © 2011-2022 走看看