123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- /// <reference path="../../node_modules/monaco-editor-core/monaco.d.ts" />
- 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);
- });
|