记录一次monaco-editor实现的sql编辑器

项目背景:项目需要前端提供一个sql语句的编辑器,供语句查询可视化。
技术框架:vue + monaco-editor
实现功能:语法提示,自动补全,语言高亮,主题切换,自适应,单行选中,格式化,主题切换
1:语法提示,monaco-editor编辑器有多种内置的编辑器语法,注册了几个默认的内置语言,“javascript”,“css”,“html”,“json”。如果需要注册其他语言,那么办法来了,在monaco-editor插件包中已经帮我们集成了大部分语言配置,路径:monaco-editor/esm/vs/basic-languaages/xxx,以sql为例。
在这里插入图片描述
注册语言,keys的值是sql语言的内置值,主要匹配关键字做提示,那么同理,如果需要自定义的语言提示,在suggestions中增加匹配的逻辑然后return出去。
在这里插入图片描述在这里插入图片描述

2语言高亮
在这里插入图片描述
3主题切换
在这里插入图片描述

4自适应
在这里插入图片描述
5单行选中
在这里插入图片描述
6格式化
在这里插入图片描述

在这里插入图片描述
7主题切换,主题可以自己设定,图中是默认的编辑器主题
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Monaco Editor 是一个非常强大的在线代码编辑器,它是 Visual Studio Code 的核心编辑器Monaco Editor 支持多文件编辑,可以在同一个编辑器窗口中打开多个文件,实现多文件编辑。 要实现多文件编辑,可以使用 Monaco Editor 提供的 `editor.createModel()` 方法创建多个模型,每个模型对应一个文件。然后,可以使用 `editor.setModel()` 方法将一个模型关联到编辑器上。通过这种方式,可以在一个编辑器窗口中打开多个文件。 以下是一个简单的示例,演示如何在 Monaco Editor实现多文件编辑: ```javascript // 创建两个模型 var model1 = monaco.editor.createModel('Hello, world!', 'text/plain'); var model2 = monaco.editor.createModel('function add(a, b) {\n return a + b;\n}', 'text/plain'); // 创建编辑器 var editor = monaco.editor.create(document.getElementById('container'), { model: model1 }); // 切换模型 function switchModel(model) { editor.setModel(model); } // 在 UI 中显示多个文件 var file1 = document.createElement('div'); file1.textContent = 'File 1'; file1.addEventListener('click', function() { switchModel(model1); }); document.body.appendChild(file1); var file2 = document.createElement('div'); file2.textContent = 'File 2'; file2.addEventListener('click', function() { switchModel(model2); }); document.body.appendChild(file2); ``` 在上面的示例中,我们创建了两个模型(`model1` 和 `model2`),分别对应两个文件。然后,我们创建了一个编辑器,并将其关联到第一个模型。最后,我们在 UI 中创建了两个元素,分别对应两个文件,点击这些元素可以切换编辑器中显示的模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值