添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

项目背景:项目需要前端提供一个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主题切换,主题可以自己设定,图中是默认的编辑器主题
在这里插入图片描述

Monaco SQL Languages 开源项目教程 monaco - sql -languages SQL languages for monaco - editor 项目地址:https://gitcode.com/gh_mirrors/mo/ monaco - sql -languages 1. 项目介绍 Monaco SQL Languages 是一个基于 Monaco Editor SQL 语言支持项...
Vue3 中使用 Monaco Editor 实现 SQL 编辑器 是一个常见的任务,因为 Monaco Editor 提供了强大的代码编辑和高亮功能,适合于多种编程语言,包括 SQL 。以下是如何在 Vue3 中集成 Monaco Editor 的步骤: 1. **安装依赖**: 首先确保已经安装了 Vue 和 Monaco Editor 。可以通过 npm 或者 yarn 安装: ```bash npm install vue@next monaco - editor yarn add vue@next monaco - editor 2. **引入并注册组件**: 在你的 Vue 组件中引入 Monaco Editor 组件,并将它注册为自定义组件: ```javascript import { createApp } from 'vue'; import Monaco Editor from ' monaco - editor .vue'; createApp(App).component(' Monaco Editor ', Monaco Editor ); 3. **配置组件**: 使用 ` monaco . editor .create` 创建一个 Monaco 编辑器 实例,并将 SQL 相关设置传递进去,如语言模式(`' sql '`)、初始代码等: ```html <template> < Monaco Editor :value=" sql Code" :language="languageMode" :options=" editor Options" ></ Monaco Editor > </template> <script> export default { data() { return { sql Code: '', // 初始的 SQL 代码 languageMode: ' sql ', // SQL 语言模式 editor Options: { lineNumbers: true, // 显示行号 wordWrap: 'on', // 自动换行 gutters: ['lineNumbers'], // 显示边距 // ... </script> 4. **事件处理**: 如果需要监听 编辑器 的变化或保存操作,可以添加相应的事件处理器,如 `beforeModelChange` 和 `save`: ```javascript methods: { handleBeforeModelChange( editor , event) { // 在修改前做校验或 记录 操作 handleSave() { const sql = editor .getValue(); // 获取 编辑器 中的 SQL 代码 // 处理保存逻辑,例如提交到服务器 在 `< Monaco Editor >` 标签上绑定这些方法作为事件处理器。 5. **实时编辑和语法高亮**: Monaco Editor 自带了语法高亮,当设置的语言模式为 SQL 时,它会自动识别 SQL 语法并进行高亮。