文章预览
大厂技术 高级前端 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(); } }} 然后本地测试确实可以格式化代码成功,但
………………………………