Extension:CodeEditor/ru

Расширение CodeEditor расширяет панель инструментов расширенного редактирования WikiEditor встроенным виджетом редактора Ace, предоставляя некоторые удобные функции для страниц JavaScript пользователя/сайта, страниц CSS, страниц JSON, а также, если установлено расширение Scribunto, для страниц Lua, т.е. страниц в пространстве имен Модуль. Редактор кода не отображается на обычных вики-страницах, т.е. вики-страницах с моделью содержимого "вики-текст". (См. для подсветки синтаксиса вики-текста при использовании редактора исходного текста.)

Оно предоставляет следующие возможности:


 * подсветка синтаксиса для JavaScript, CSS и Lua
 * автоматический отступ
 * клавиша табуляции создает отступы табуляции (с версии 1.22), до этого были мягкие отступы.
 * выделение отступа/неотступа с помощью клавиш Tab/Shift-Tab
 * проверка достоверности синтаксиса для JavaScript
 * Попарное сопоставление для круглых и квадратных скобок

Настройка

 * Чтобы отключить редактор на страницах JavaScript и CSS в пространствах имен MediaWiki, User и других основных, установите (по умолчанию "true").
 * Чтобы отключить редактор на страницах JavaScript и CSS в пространствах имен MediaWiki, User и других основных, установите (по умолчанию "true").


 * Чтобы отключить это расширение для Scribunto, то есть в пространстве имен модулей, установите (по умолчанию "true").
 * Чтобы отключить это расширение для Scribunto, то есть в пространстве имен модулей, установите (по умолчанию "true").

JavaScript
Можно изменить конфигурацию редактора ACE, подключившись к MediaWiki JS hook (i.e.  ). Аргументом, передаваемым вашему хуку, будет сессия редактора ACE.



Интеграция с WikiEditor
Я интегрировал CodeEditor в подключаемые части в качестве подготовки к работе над будущим редактором, поскольку мы хотим иметь возможность расширить его для редактирования вещей, которые не являются простым вики-текстом, что потребует некоторых изменений в настройке панели инструментов и тому подобное. ''JS/CSS здесь в конечном итоге все равно возвращают обычный текст, что делает его более простым промежуточным проектом. --brion 00:26, 14 June 2011 (UTC)''

Хорошо:


 * работают специальные вставки символов, включая пары кавычек для окружения текста
 * работают основные вставки форматирования, включая диалоги ссылок
 * работает диалог поиска/замены
 * Встроенный в ace пользовательский интерфейс поиска/замены также срабатывает от команд клавиатуры, все ещё нужно отключить его! (onCommandKey)

Плохо:


 * многострочное форматирование применяется некорректно (но действительно ли оно должно применяться здесь? :)

Todo:


 * удалить кнопки панели инструментов, которые не применяются (форматирование, помощь по синтаксису?).
 * добавить кнопки панели инструментов, которые являются более непосредственно полезными
 * отступ/выступ
 * помощники для вставки общих ключевых слов или битов кода
 * справочная ссылка на справочник MW JS API, спецификации/документацию по JS и CSS



Известные проблемы

 * доступность: tab/shift-tab переопределяются. есть ли последовательная альтернатива для пользователей, полагающихся на клавиатуру?
 * доступность: клавишу доступа в исходной текстовой области необходимо перенести или обработать другим способом
 * полоса прокрутки инициализируется слишком широкой; необходимо запустить проверку изменения размера после её заполнения (возможно, исправлено?).
 * позиция курсора/прокрутки не сохраняется при предварительном просмотре/изменении

Лицензия
Хотя это расширение лицензировано GNU General Public License v2.0 или более поздней версии (GPL-2.0+), оно использует программное обеспечение редактора Ace, которое лицензировано BSD 3-clause "New" или "Revised" License (BSD-3-Clause).