Monaco Editor 编辑器拷贝粘贴功能调用和获取选中文本

techbrood 发表于 2018-01-09 18:57:41

标签: 没有标签

- +

有时候需要在monaco editor外部调用编辑器的内置功能,比如希望在页面主工具栏实现一些快捷操作。

<button onclick="copy()">copy</button>
<button onclick="paste()">paste</button>	

1. 实现拷贝操作

只要调用editor的copy动作即可(你可以使用getActions来获取可用动作列表):

function copy() {
	editor.getAction('editor.action.clipboardCopyAction').run();
}

2. 实现粘贴操作

粘贴操作的思路是用剪切板上的内容替换编辑器中的当前选中内容。获取剪切板的内容,出于安全考虑,被大多浏览器所限制,一个替换方案是自己保存之前拷贝的内容在本地存储中。示范代码如下:

function paste() {
    var selection = editor.getSelection();
    var content = localStorage.getItem('your-content');
    editor.executeEdits("", [
	    {
	      range: new monaco.Range(selection.endLineNumber, selection.endColumn, selection.endLineNumber, selection.endColumn),
	      text: content
	    }
	  ])
}


possitive(17) views11958 comments0

发送私信

最新评论

请先 登录 再评论.
相关文章