Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在编辑器中插入代码段?_Javascript_Monaco Editor - Fatal编程技术网

Javascript 如何在编辑器中插入代码段?

Javascript 如何在编辑器中插入代码段?,javascript,monaco-editor,Javascript,Monaco Editor,我正在网页中使用Monaco Editor v 0.10.1,不知道是否有人知道是否可以添加一组代码段,这些代码段将在命令调色板->插入代码编辑器中弹出。否,不在当前版本中-希望很快会有更新版本:),但您可以在代码中注册自己的代码段,该代码段将在autocomplete/CTRL+SPACE中提供,然后在以后的命令选项板中提供。您可以使用AddAction方法来完成此操作 //Register a custom snippet monaco.languages.registerCompletio

我正在网页中使用Monaco Editor v 0.10.1,不知道是否有人知道是否可以添加一组代码段,这些代码段将在命令调色板->插入代码编辑器中弹出。

否,不在当前版本中-希望很快会有更新版本:),但您可以在代码中注册自己的代码段,该代码段将在autocomplete/CTRL+SPACE中提供,然后在以后的命令选项板中提供。

您可以使用AddAction方法来完成此操作

//Register a custom snippet
monaco.languages.registerCompletionItemProvider('javascript', {
      provideCompletionItems: () => {
        return [
          {
            label: 'for: Array',
            kind: monaco.languages.CompletionItemKind.Snippet,
            documentation: 'Iterate over an Array',
            insertText: [
              'for(let i=0; i < arr.length; i++){',
              '\tlet elem = arr[i];',
              '',
              '}'].join('\n')
          }
        ]
      }
    });

//Add custom action
this.editor = window.monaco.editor.create(this.$el, options);
window.activeEditor = this.editor
this.editor.addAction({
      id: 'insert-text-at-cusor-command',
      label: 'Command Snippet',
      keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.F10],
      contextMenuGroupId: 'snippets',
      contextMenuOrder: 1.5,
      run: function (ed) {
        activeEditor.focus()
        activeEditor.trigger('keyboard', 'type', {text: "for"});
      }
});
//注册自定义代码段
monaco.languages.RegisterCompletionImprovider('javascript'{
provideCompletionItems:()=>{
返回[
{
标签:“for:Array”,
种类:monaco.languages.CompletionItemKind.Snippet,
文档:“迭代数组”,
插入文本:[
'对于(设i=0;i

参考:

提供工作示例的任何链接。我尝试了同样的方法,但它不起作用。代码段CompletionProvider triggerCharacters丢失,但insertText是字符串,insertTextRules:monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet应该添加
monaco.languages.registerCompletionItemProvider('javascript', {
  provideCompletionItems: () => {
    return {
      suggestions: [
        {
          label: 'Async Block',
          kind: monaco.languages.CompletionItemKind.Snippet,
          documentation: 'Add an async block',
          insertText: [
            '(async () => {',
            '\t',
            '})()'].join('\n')
        }
      ]
    };
  }
});