首页
学习
活动
专区
圈层
工具
发布

手摸手打造类码上掘金在线IDE(二)——编辑器篇

这玩意什么都好,毕竟是vscode 的祖宗,就是文档,是真费解啊 当然你也可以另辟蹊径,找了另一个极端codemirror5 这也是跟monaco-editor 可以分庭抗礼的编辑器,支持语言众多而且接入方便...有很多jym 对这个一块可能还相当陌生,那么我们就来分别对这两个编辑器的使用方式来一个简单的介绍 monaco-editor monaco-editor 虽然也有vue的版本接入 vue-monaco-editor...来省去了自己配置的繁琐 // vue.config.js const path = require('path') const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin...有了大佬的贡献,我们说干就干 在开始之前,我们还需要一样东西onigasm 这个东西简单的来说,就是一个web版本的正则表达式的库 ,他脱胎于c语言编写Oniguruma 简单的来说,就是将 Oniguruma...就简单很多了 主要包含: 编辑器包vue-codemirror 主题包 @codemirror/theme-one-dark 自带暗黑主题 js 语言包@codemirror/lang-javascript

3.4K12

手把手教你实现在Monaco Editor中使用VSCode主题

背景 笔者开源了一个小项目code-run,类似codepen的一个工具,其中代码编辑器使用的是微软的Monaco Editor,这个库是直接从VSCode的源码中生成的,只不过是做了一点修改让它支持在浏览器中运行...自定义主题 Monaco Editor支持自定义主题,方法如下: // 定义主题 monaco.editor.defineTheme(themeName, themeData) // 使用定义的主题 monaco.editor.setTheme...onigasm 这个库就是用来解决上述浏览器不支持C语言编写的Oniguruma的问题,解决方法是把Oniguruma编译为WebAssembly,WebAssembly是一种中间格式,可以把非js代码编译成...安装: npm install monaco-editor-webpack-plugin -D Vue项目配置如下: // vue.config.js const MonacoWebpackPlugin...,因为所有内置语言都被去除了嘛,比如我们要使用js语言的话: monaco.languages.register({id: 'javascript'}) 这种方法虽然可以完美解决该问题,但是很大的一个副作用是语法提示不生效了

4.7K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    借助 CodeBuddy,我见证了一款在线代码格式化神器的诞生

    于是我向 CodeBuddy 提出一个大胆的请求:“我想要一个 Vue3 + Monaco Editor 打造的在线格式化平台 FormatForge,它要看起来专业,操作简单,还要有那种灰蓝配色和毛玻璃背景的氛围感...它首先用 Vite 初始化了 Vue3 项目,并立即装好了我提到的 monaco-editor、@monaco-editor/loader 和 prettier。...然后,它创建了主入口 App.vue 和一个叫 Editor.vue 的核心组件。...特别让我印象深刻的是,Editor.vue 中 monaco-editor 的集成写得非常稳,加载逻辑简洁明确,还支持自动语言检测。...当我刚想到要不要补一个压缩功能,它已经开始安装 terser、cssnano 和 html-minifier-terser,并写好代码支持 HTML、CSS、JS 三种语言的压缩处理。

    37800

    实现一个 Code Pen:(二)在 Next.js 中使用 Monaco Editor

    Monaco Editor 是 VS Code 中使用的开源代码编辑器, 拥有代码高亮和代码自动补全的功能,Monaco Editor 支持的语言有很多,所以使用的时候不需要将全部语言都支持,我们只需要按需加载需要支持的语言就可以了...默认会加载一个 editor.worker.js,这是一个基础功能文件,提供了所有语言通用的功能(例如已定义常量的代码补全提示),无论使用什么语言,monaco 都会去加载它。...看了下 webpack 打包出了所有的 chunk js,这些语言是我们不需要的,我们只需要加载所需要的语言 JS 就可以了,因此需要优化 js 文件大小。...languages (string[]) - 编辑器需要支持的语言,默认值是全部语言。 features (string[]) - 编辑器需要支持的控件,默认值是全部控件。...', }) ) } return config }, } 将 monaco-editor 封装一个 react 组件 import React, { useRef

    3.6K20

    快速搭建一个代码在线编辑预览工具(实战)

    编辑器 目前涉及到代码编辑的场景基本使用的都是codemirror,因为它功能强大,使用简单,支持语法高亮、支持多种语言和主题等,但是为了能更方便的支持语法提示,本文选择的是微软的monaco-editor...monaco-editor支持多种加载方式,esm模块加载的方式需要使用webpack,但是vite底层打包工具用的是Rollup,所以本文使用直接引入js的方式。..."/monaco-editor/min/vs/loader.js"> monaco-editor/min/vs/editor/editor.main.js"...> 复制代码 monaco-editor内置了10种语言,我们选择中文的,其他不用的可以直接删掉: ?...动态切换编辑器语言 Monaco Editor想要动态修改语言的话我们需要换一种方式来设置文档,上文我们是创建编辑器的同时直接把语言通过language选项传递进去的,然后使用setValue来设置文档内容

    5K30

    Markstream-VUE:构建高性能流式 Markdown 渲染器

    、状态机、增量 ASTMarkdownRender渲染调度中枢,连接数据流与 UI虚拟窗口、批次队列、优先级调度CodeBlockNode代码块渲染,支持 Monaco 流式更新Worker 隔离、增量...Worker 加载失败检查 vite-plugin-monaco-editor 配置,确认 worker 文件路径Mermaid 图表不显示未安装 peer 依赖或未启用pnpm add mermaid...outputDirectory": "dist", "framework": "vite", "env": { "NODE_VERSION": "20" }}关键配置:启用 vite-plugin-monaco-editor...rel="preload" href="/monaco-editor-workers/*.js" as="script">5.2 阿里云 OSS + CDN 加速// 配置 CDN 回源规则{ "origin...Editor 流式更新方案:stream-monaco 项目Vue 3 虚拟化渲染最佳实践:Vue RFC #0030开源地址: GitHub: https://github.com/Simon-He95

    16410

    快速搭建一个代码在线编辑预览工具

    编辑器 目前涉及到代码编辑的场景基本使用的都是codemirror,因为它功能强大,使用简单,支持语法高亮、支持多种语言和主题等,但是为了能更方便的支持语法提示,本文选择的是微软的monaco-editor...monaco-editor支持多种加载方式,esm模块加载的方式需要使用webpack,但是vite底层打包工具用的是Rollup,所以本文使用直接引入js的方式。..."/monaco-editor/min/vs/loader.js"> monaco-editor/min/vs/editor/editor.main.js"...> monaco-editor内置了10种语言,我们选择中文的,其他不用的可以直接删掉: 接下来创建编辑器就可以了: const editor = monaco.editor.create...动态切换编辑器语言 Monaco Editor想要动态修改语言的话我们需要换一种方式来设置文档,上文我们是创建编辑器的同时直接把语言通过language选项传递进去的,然后使用setValue来设置文档内容

    4.8K20

    几个免费的富文本编辑器,这不完胜付费?

    界面也很优雅,如图: 但美中不足的是,Editor.md 目前不支持将 HTML 解析为 Markdown,有这方面需求的朋友要注意下。...用法也很简单,原生 JS 就可以,界面也很精简: 此外,它还有适用于 Vue 和 React 的封装版本,无论你习惯用哪个前端框架,都能无差异地使用它。...Vue 版本:https://github.com/surmon-china/vue-quill-editor React 版本:https://github.com/zenoamaro/react-quill...monaco-editor GitHub:https://github.com/microsoft/monaco-editor Star 数:28.6k 微软开源的代码编辑器,支持 Visual Studio...而且他是支持所见即所得的,类似 Typora 的那种编辑体验: 这款编辑器也同时支持原生 JS 以及 Vue、React 的封装版本,还是很推荐的。

    21.6K31

    一文打透前端研发需要了解的DSL

    再次之前,我们也许要先了解一两个工具,一个是 js 写的 DSL 解析器,叫做 nearley。另外一个也是 js 写的 ,叫做 jison 。...实现语法着色,代码补全,我们可能需要做一个让编辑器识别我们的自定义语言,这个过程叫做语言支持。...Monaco Editor 和 Ace Editor 都支持自定义语言支持,你可以根据自己的需求来实现自定义语言支持。这里我以 Monaco Editor 为例,来说明如何实现自定义语言支持。...你可以通过定义自己的语言支持来让 Monaco Editor 支持你的 DSL。以下是一个如何使用 Monaco Editor 来实现自定义语言支持的基本步骤:1....创建编辑器最后,你可以调用 monaco.editor.create 来创建一个编辑器实例,并设置它的语言和主题。

    6.6K21
    领券