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

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

 * accessibility: tab/shift-tab are overridden. is there a consistent alternative for keyboard-reliant users?
 * accessibility: accesskey on the original textarea needs to be moved over or otherwise handled
 * scrollbar initializes too wide; need to trigger resize check after that's filled (maybe fixed?)
 * cursor/scroll position not maintained over previews/show changes

License
While this extension is licensed GNU General Public License v2.0 or later (GPL-2.0+) it makes use of the Ace editor software which is licensed BSD 3-clause "New" or "Revised" License (BSD-3-Clause).