/// define(['./samples-all.generated'], function(ALL_SAMPLES) { var XHR_SAMPLES = {}; ALL_SAMPLES.forEach(function(sample) { XHR_SAMPLES[sample.name] = sample.content; }); var actions = (function() { "use strict"; return [ { name: 'Undo', run: function (editor) { editor.trigger('keyboard', monaco.editor.Handler.Undo); } }, { name: 'type & suggest', run: function (editor) { editor.setPosition({ lineNumber: 1, column: 1 }); var firstChar = editor.getModel().getLineContent(1).charAt(0); editor.trigger('keyboard', monaco.editor.Handler.CursorEnd); editor.trigger('keyboard', monaco.editor.Handler.Type, { text: '\n' + firstChar }); editor.focus(); editor.trigger('test', 'editor.action.triggerSuggest'); } }, { name: 'links', run: function (editor) { editor.setPosition({ lineNumber: 1, column: 1 }); var commentsSupport = editor.getModel().getMode().commentsSupport; var text = 'http://www.test.com'; if (commentsSupport) { var commentsConfig = commentsSupport.getCommentsConfiguration(); if (commentsConfig && commentsConfig.lineCommentTokens) { text = commentsConfig.lineCommentTokens[0] + ' ' + text; } else if (commentsConfig && commentsConfig.blockCommentStartToken) { text = commentsConfig.blockCommentStartToken + ' ' + text + ' ' + commentsConfig.blockCommentEndToken; } } editor.trigger('keyboard', monaco.editor.Handler.Type, { text: text + '\n' }); } }, { name: 'multicursor', run: function (editor) { editor.setPosition({ lineNumber: 1, column: 1 }); editor.trigger('keyboard', monaco.editor.Handler.AddCursorDown); editor.trigger('keyboard', monaco.editor.Handler.AddCursorDown); editor.trigger('keyboard', monaco.editor.Handler.AddCursorDown); editor.trigger('keyboard', monaco.editor.Handler.AddCursorDown); editor.trigger('keyboard', monaco.editor.Handler.AddCursorDown); editor.trigger('keyboard', monaco.editor.Handler.Type, { text: 'some text - ' }); } } ]; })(); var panelContainer = document.getElementById('control'); var editorContainer = document.getElementById('editor'); var editors = {}, models = {}; function onError(err) { console.error(err); alert('error!!'); } function getAllModes() { var result = monaco.languages.getLanguages().map(function(language) { return language.id; }); result.sort(); return result; } function createEditor(container, mode) { editors[mode] = monaco.editor.create(container, { value: mode }); var value = mode + '\n' + XHR_SAMPLES['sample.' + mode + '.txt']; var model = monaco.editor.createModel(value, mode); editors[mode].setModel(model); } function createEditors(modes) { for (var i = 0; i < modes.length; i++) { var container = document.createElement('div'); container.style.width = '300px'; container.style.cssFloat = 'left'; container.style.height = '200px'; container.style.border = '1px solid #ccc'; container.style.background = 'red'; container.setAttribute('data-mime', modes[i]); editorContainer.appendChild(container); createEditor(container, modes[i]); } var clearer = document.createElement('div'); clearer.style.clear = 'both'; editorContainer.appendChild(clearer); } function executeAction(action) { for (var mime in editors) { if (editors.hasOwnProperty(mime)) { action(editors[mime]); } } } function createActions(actions) { for (var i = 0; i < actions.length; i++) { var btn = document.createElement('button'); btn.appendChild(document.createTextNode('<<' + actions[i].name + '>>')); btn.onclick = executeAction.bind(this, actions[i].run); panelContainer.appendChild(btn); } } createEditors(getAllModes()); createActions(actions); });