专栏名称: 程序员成长指北
专注 Node.js 技术栈分享,从 前端 到 Node.js 再到 后端数据库,祝您成为优秀的高级 Node.js 全栈工程师。一个有趣的且乐于分享的人。座右铭:今天未完成的,明天更不会完成。
今天看啥  ›  专栏  ›  程序员成长指北

Monaco编辑器+WebWorker:超速自动代码格式化技巧,必学技能!

程序员成长指北  · 公众号  ·  · 2024-08-09 12:07

文章预览

大厂技术    高级前端    Node进阶 点击上方  程序员成长指北 ,关注公众号 回复 1 ,加入高级Node交流群 需求背景 一个浏览器在线代码编辑器中的功能, Cmd+S/Ctrl+S 时屏蔽浏览器的保存,并自动格式化编写的代码。 初步功能实现 先去查询了一下 monaco-editor 1 文档官网, 查看 monaco 实例 是否提供了格式化代码的 api 。 this.monacoInstance.trigger( "editor" ,  "editor.action.formatDocument" ); 这么一看需求还是蛮简单的 监听 monaco 的 onKeyDown 事件 onKeyDown={ ( event ) =>  {    const  keyCode = event.keyCode || event.which || event.charCode;    const  isCtrlOrCmdPressed = event.ctrlKey || event.metaKey;    if  (keyCode ===  83   & &  isCtrlOrCmdPressed) {     this.monacoInstance.trigger( "editor" ,  "editor.action.formatDocument" );     event.preventDefault();   } }} 然后本地测试确实可以格式化代码成功,但 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览