Skip to content
Sergey Kutukov edited this page May 15, 2016 · 3 revisions

Ace-editor

#####Документация Ace-editor (https://ace.c9.io/#nav=about). Мод - набор правил для подсветки синтаксиса, автозаполнения и т.д. #####Документация про создание своего мода (https://ace.c9.io/#nav=higlighter). #####Онлайн-редактор который предлагает Ace-editor для создания своего мода (https://ace.c9.io/tool/mode_creator.html). ##С чего начать работу Создадим на странице div в котором планируется создать окно для редактирования кода

<div id="editor"></div>

Подключение библиотеки

 <script src="https://cdn.jsdelivr.net/ace/1.2.3/min/ace.js" type="text/javascript" charset="utf-8"></script>

Объявление переменной, через которую будет осуществляться настройка окна для редакции кода.

  var editor = ace.edit("editor");

Установка темы для красоты)

  editor.setTheme("ace/theme/twilight");

Выбор языка, с которым предполагается работать в окне или свой мод, где определены наша подсветка синтаксиса, параметры автозаполнения и т.д..

  editor.session.setMode("ace/mode/r");

Ввод строки в поле для редактирования:

editor.insert("#some r code for example: \n a <- c(4,3,3,3,3,4,4,3,5,4,5,5) \n \n \n");

Нужно добавить это в стили страницы, чтобы недоступная для редактирования кода часть была например красной.

.readonly-highlight {
    background-color: red;
    opacity: 0.2;
    position: absolute;
}

Определяем область которая станет недоступной для чтения после определения некоторых функций.

var session  = editor.getSession()
            //now me can use class "Range"
            , Range    = ace.require("ace/range").Range
            //initialize  variable range of class "Range"
            //(startRow,startColumn,endRow,endColumn)
            , range    = new Range(0, 0, 2,0)
            // set css style for this range
            , markerId = session.addMarker(range, "readonly-highlight");

Эти функции блокируют возможность редактировать тот сегмент кода.

    editor.keyBinding.addKeyboardHandler({
        handleKeyboard : function(data, hash, keyString, keyCode, event) {
            if (hash === -1 || (keyCode <= 40 && keyCode >= 37)) return false;

            if (intersects(range)) {

                return {command:"null", passEvent:false};
            }
        }
    });

    function intersects(range) {
        return editor.getSelectionRange().intersects(range);
    }

##Пользовательские моды Coming soon)

Development

  1. Project structure
  2. Heroku
  3. Coding Guidelines

Вычисляемые статистики

Architecture

R

Matlab

Выбор базы данных

Angular 2

Источники данных

Random

  1. Interpolation
  2. [Charts comparison](displaying graphs control)
  3. What is Servlet?
  4. Ace-editor

GDS

  1. Библиотека CoreArray
  2. Сборка CoreArray
  3. Сравнение скоростей способов доступа к CoreArray
  4. Переделка Gdsfmt под java
  5. Разбор структуры файла из центра биоинформатики

Институт биоинформатики

Темы:

  1. Классические категориальные тесты на независимость
Clone this wiki locally