-
Notifications
You must be signed in to change notification settings - Fork 5
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)
- Project structure
- Heroku
- Coding Guidelines
- [Java](Coding Guidelines)
- Html
- Логирование (Java)
- Analyzers: [TEMPLATE]
- Общая схема вычисляемых функций
- Линейный коэффициент корреляции
- Уравнение линейной регрессии
- Анализ временных рядов
- Анализ одномерных временных рядов: вычисление тренда, сезонной и шумовой компонент несколькими способами
- Критерий Стьюдента
- Analyzers: Kolmogorov Smirnov Test for two samples
- Анализ главных компонент (Principal Component Analysis, PCA)
- Показатель Ляпунова для временных рядов
- Navigation
- REST API
- Классы - источники данных
- Добавление нового источника данных
- [Analyzers](Architecture of analize function)
- Analyzers (version 2)
- Пользователи, проекты и файлы
- Java R classic integration
- Renjin (R in JVM)
- R integration architecture
- R scripts
- RConfiguration
- Полезные функции в R
- Angular 2 in JavaScript
- Learning resources, etc.
- Angular 2 приложение проектов
- Точка входа для более быстрой разработки Angular 2 приложения
- Interpolation
- [Charts comparison](displaying graphs control)
- What is Servlet?
- Ace-editor
- Библиотека CoreArray
- Сборка CoreArray
- Сравнение скоростей способов доступа к CoreArray
- Переделка Gdsfmt под java
- Разбор структуры файла из центра биоинформатики