Extension:CodeEditor/zh

代码编辑器扩展给予WikiEditor高级编辑工具栏一个嵌入式的Ace编辑器部件，提供一些便捷的功能在用户/网站的JS、CSS页面和当Scribunto扩展安装后的模块名字空间的页面：


 * syntax highlighting for JavaScript, CSS and Lua
 * auto-indent
 * tab key produces tab indents (since 1.22), soft indents before.
 * indent/unindent selection with tab/shift-tab
 * syntax validity check for JavaScript
 * Pair-matching for parenthesis, braces and square brackets

Currently the extension is under development, and details of activation and functionality are subject to change.

许可证
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).

配置

 * 要在MediaWiki、用户和其他核心名字空间中的JavaScript和CSS页面上禁用编辑器，设置 （默认为“true”）
 * 要在MediaWiki、用户和其他核心名字空间中的JavaScript和CSS页面上禁用编辑器，设置 （默认为“true”）


 * To use this extension for Scribunto, i.e. in the module namespace set  (default is "false")
 * To use this extension for Scribunto, i.e. in the module namespace set  (default is "false")


 * To use this extension for as well as, to allow syntax highlighting in the module namespace set   (default is "false")
 * To use this extension for as well as, to allow syntax highlighting in the module namespace set   (default is "false")


 * JavaScript

It is possible to change the configuration of the ACE editor, by hooking into the MediaWiki JS hook. The argument passed to your hook will be an ACE editor session.

Wiki编辑器集成
''I've been integrating CodeEditor into the pluggable portions of Extension:WikiEditor as prep for Future editor work, since we'll want to be able to extend it to edit things that aren't plain wikitext, which'll need some changes to the toolbar setup and whatnot. JS/CSS here still return plain text in the end, making it an easier intermediate project. --brion 00:26, 14 June 2011 (UTC)''

Good:
 * special char insertions work, including quote pairs to surround text
 * basic formatting insertions work, including link dialogs
 * search/replace dialog works
 * ace's built-in search/replace UI also triggers from keyboard commands, still need to disable them! (onCommandKey)

Bad:
 * multi-line formatting doesn't apply correctly (but really should that apply here? :)

Todo:
 * remove toolbar buttons that don't apply (formatting, syntax help?)
 * add toolbar buttons that are more directly useful
 * indent/outdent
 * insertion helpers for common keywords or code bits
 * help reference to MW JS API reference, JS & CSS specs/documentation

问题
Known issues:
 * probably explodes with classic toolbar now; use with Extension:WikiEditor toolbar. See also 55419
 * 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
 * upstream ctrl+R, ctrl+L, ctrl+T are taken over by the editor, which is SUPER annoying