Extension:CodeEditor
- Not to be confused with CodeMirror .
CodeEditor Release status: stable |
|
---|---|
Description | Provides a syntax-highlighting code editor for site & user JS, CSS and Lua pages, integrating with advanced edit toolbar |
Author(s) |
|
Compatibility policy | Snapshots releases along with MediaWiki. Master is not backward compatible. |
MediaWiki | >= 1.43 |
Database changes | No |
License | GPL-2.0-or-later AND BSD-3-Clause |
Download | |
|
|
Quarterly downloads | 119 (Ranked 48th) |
Public wikis using | 8,385 (Ranked 17th) |
Translate the CodeEditor extension if it is available at translatewiki.net | |
Issues | Open tasks · Report a bug |
The CodeEditor extension extends the WikiEditor advanced editing toolbar with an embedded Ace editor widget, providing some handy features for user/site JavaScript pages, CSS pages, JSON pages, and when extension Scribunto is also installed, for Lua pages, i.e. pages in the Module namespace. The code editor does not show on regular wiki pages, i.e. wiki pages with the "wikitext" content model. (See Extension:CodeMirror for syntax highlighting of wikitext when using the source editor.)
It provides the following features:
- 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 ↹ keys
- syntax validity check for JavaScript
- Pair-matching for parenthesis, braces and square brackets
Installation
- Download and move the extracted
CodeEditor
folder to yourextensions/
directory.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CodeEditor - Add the following code at the bottom of your LocalSettings.php file:
wfLoadExtension( 'CodeEditor' ); $wgDefaultUserOptions['usebetatoolbar'] = 1; // user option provided by WikiEditor extension
- Configure as required.
- Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Vagrant installation:
- If using Vagrant , install with
vagrant roles enable codeeditor --provision
Configuration
$wgCodeEditorEnableCore
- To disable the editor on JavaScript and CSS pages in the MediaWiki, User and other core namespaces, set
$wgCodeEditorEnableCore = false;
(default is "true")
$wgScribuntoUseCodeEditor
- To disable this extension for Scribunto, i.e. in the module namespace set
$wgScribuntoUseCodeEditor = false;
(default is "true")
JavaScript
It is possible to change the configuration of the ACE editor, by hooking into the MediaWiki JS hook (i.e. mw.hook( 'codeEditor.configure' ).add( ... )
).
The argument passed to your hook will be an ACE EditSession object.
If you need to interact with the contents of a CodeEditor instance, use module-jquery.textSelection.$.fn.textSelection().
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).
See also
- Category:CodeEditorGetPageLanguage extensions – extensions that make use of CodeEditor through the CodeEditorGetPageLanguage hook.
- en:User:Nardog/CodeEditorAssist – a user script to save user preferences across page loads
This extension is being used on one or more Wikimedia projects. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's CommonSettings.php and InitialiseSettings.php configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's Special:Version page. |
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |
- Extensions bundled with MediaWiki 1.31/en
- Stable extensions/en
- Extensions with invalid or missing type/en
- Extensions with unknown license/en
- Extensions in Wikimedia version control/en
- All extensions/en
- Extensions used on Wikimedia/en
- Extensions included in BlueSpice/en
- Extensions included in Canasta/en
- Extensions available as Debian packages/en
- Extensions included in Fandom/en
- Extensions included in Miraheze/en
- Extensions included in MyWikis/en
- Extensions included in ProWiki/en
- Extensions included in semantic::core/en
- Extensions included in Telepedia/en
- Extensions included in wiki.gg/en
- Extensions included in WikiForge/en
- Syntax highlighting extensions/en
- Scribunto extensions/en
- Edit extensions/en