Ace

Best highlighted code editor that has been adapted for MODX

Creator: Danil Kostin (danya_postfactum)
Updated by: Ivan Bochkarev (ibochkarev)

Need help installing this extra?

Screenshots

About Ace

Ace (Ajax.org Cloud9 Editor) integration for MODx Revolution. Ace Provides best syntax highlighting and desktop-editors behavior (Sublime, Vim, Textmate) in your Elements, Files and Resources (when wysiwyg is disabled). It comes with 28 color schemes.

This editor is used in GitHub, Cloud9 IDE, Acebug and other projects.

For now the editor supports drag'n'drop of chunks, snippets, resources and files from MODx Tree.

This project is hosted on github here. Please feel free to leave comments/suggestions.

Here is the support forum thread for Ace.

Information

Released
November 6, 2026

Supported Database
MySQL

License
GPLv2

Supported Versions
2.0 - Current

Downloads
382,808

Instructions

Install via Package Management.

Set editor theme you wish in system settings (change namespace to "ace").

If you want to use this editor for resources, just set system option use_editor to false (global usage), or richtext setting of certain resource to false (specific usage).

New in 1.9.12-pl

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.9.12] - 2026-10-31

Fixed

  • Package upgrade now preserves which_element_editor when a custom editor is already selected. Ace is set as default only on fresh install or when the setting value is empty (#56).
  • Setting description for ace.theme lists kr_theme instead of kr in both RU and EN lexicons, matching the actual theme module name (#57).

[1.9.11] - 2026-10-25

Fixed

  • Undo (Ctrl+Z / Cmd+Z) still works after saving a chunk, template, or other Ace form. Save synced the editor with session.setValue() of the same text, and Ace resets its undo manager on that call (#47).
  • Snippet and plugin editor keeps a leading <?php (and a trailing ?>) after save. MODX modScript::set() stores the code without that wrapper and the save response was written back into Ace, so the tag disappeared immediately (#48). The database still stores the code without the wrapper. After a reload the editor shows the stored source.
  • Fullscreen insets follow the manager nav and the Save/Close bar instead of fixed 60px / 70px, so a taller action bar on MODX 3 no longer covers the top of the editor or the collapse button (#49).

[1.9.10] - 2026-07-27

Added

  • Default MODX Tab snippets (getr, pdoResources, chunk, [[*tv]], etc.) installed into ace.snippets on fresh install/upgrade when the setting is empty (#36).
  • System setting ace.draft_restore to save editor drafts in browser localStorage and restore after accidental reload (#33).
  • System setting ace.color_preview to tint CSS color literals (#hex, rgb/hsl) in CSS/HTML modes (#34).
  • System setting ace.auto_close_tags to disable automatic closing of HTML tags, brackets, and MODX tag pairs (#29).
  • Unit tests for plugin helpers and shared JS utils (composer test, npm test).

Fixed

  • Ctrl+S / Cmd+S in fullscreen on chunk/template/element forms: save showed success but wrote stale content because the hidden field left the form when the editor moved to document.body. The named input now stays in the form; getValue() syncs from Ace before submit; MODx.onSaveEditor syncs the original Ext field (#25).
  • Resource content form: Ace no longer replaces #ta when another RTE is configured (which_editor ≠ Ace). With use_editor=Yes and e.g. TinyMCE, non-richtext resources keep a plain textarea instead of Ace (#30).
  • Resource content form: use_editor is read from the current context override when available, not only the global system setting (#35).
  • onDestroy no longer throws when Ace was never initialized (destroy before onRender or partial Ext component) (#32).
  • SCSS/CSS/static chunks: MODX tag mixed mode is enabled only for HTML-like mime types (text/html, Smarty, Twig), so // and /* */ comments highlight correctly instead of HTML <!-- --> (#31).
  • Resource overview cache tab (resource/data): Ace initializes after cache buffer is loaded, so modx-rdata-buffer is not empty (#28).
  • Empty-field Ace init no longer waits up to 5s: async wait applies only to modx-rdata-buffer on the resource overview cache tab.
  • which_editor for resource forms also respects context overrides (aligned with use_editor).
  • Color preview is per-editor (no shared singleton), capped at 2000 lines, and cleaned up on destroy.
  • Draft restore: stable storage keys, non-empty draft banner only, clear on successful form save / MODx.onSaveEditor.
  • Guard onResize / initEvents / autoSize / setSize when Ace was never rendered.
  • Static Ace helpers (DraftManager, settings getters) attach after Ext.extend so they are not overwritten; ace-color-preview.js loads after modx.texteditor.js.

[1.9.9] - 2026-03-29

Fixed

  • Fullscreen Ace over the whole manager (MODX 3): right-hand panels and other chrome no longer stay on top. The editor node is moved to document.body while maximized and uses a higher z-index, fixing stacking limits inside #modx-content that core PR modxcms/revolution#16778 does not address for extras (#18).
  • Fullscreen .ace_maximized insets (top: 60px, left: 70px, right/bottom: 3px) so the manager top bar, left tree, and resource/form header stay visible on MODX 3.1+ (see community report and workaround note).
  • In-editor PHP syntax check: false Syntax error, unexpected '?' (and similar) for valid PHP 7+ code such as null coalescing ??. Bundled worker-php.js updated to ace-builds 1.37.5 (T_COALESCE and related tokens).

[1.9.8] - 2026-03-05

Fixed

  • Fix fatal error when the resource does not exist (#23)

[1.9.7] - 2026-02-21

Fixed

  • Installation/upgrade failing with "The location specified does not exist" and "Invalid or uninitialized Zip object" when preserving existing files (e.g. on MODX 3, SiteDash): set PREEXISTING_MODE to REMOVE_PREEXISTING so .preserved.zip is not created (#22)

[1.9.6] - 2026-02-16

Added

  • Build script for MODX 2 and MODX 3 (Transport, auto-install, ClearCache)
  • Readable install log: [Ace] sections, ✓/✅ messages in resolver and build output
  • MODX root detection via core/config/config.inc.php when building from Extras/
  • Readme: building from MODX 2 for MODX 2 installs (optional; avoids post-pack patch)

Changed

  • PHP 8.1–8.5: null-safe array_merge, array key and file_get_contents handling in completions processors
  • Build config: 4-space indent, search order MODX_BASE_PATH → config.inc.php → modx.class.php
  • Resolver: PSR-12, structured log, recursive rmdir via closure
  • Package attributes and build output use [Ace] prefix and checkmarks

Fixed

  • Unable to load processor "getResourceFields" in MODX 3 (issue #16): processors path and CamelCase file names
  • Auto-install in MODX 3: full class name MODX\Revolution\Transport\modTransportPackage for xPDO
  • E_DEPRECATED suppressed during CLI build (dynamic property in MODX core)
  • Package built on MODX 3 failing to install on MODX 2 (xPDOObjectVehicle could not be loaded): manifest vehicle class names patched to MODX 2 format (xpdo.transport.*) after pack; double-backslash and serialized manifest supported, array keys patched

[1.9.5] - 2025-10-18

Added

  • Format code by Ctrl-Shift-B

[1.9.4] - 2024-02-23

Added

  • Links on GitHub [#13]
  • Alt+z keyboard shortcut to toggle word wrap [#15]

Fixed

  • focus() triggering for undefined [#14]

[1.9.3] - 2022-05-15

Changed

  • Move settings into an own file [#12]

Fixed

  • Ace TV input [#11]
  • PHP warning: Undefined variable $field [#10]

[1.9.2] - 2022

Added

  • TV input Ace field [#9]

Changed

  • Corrected search form [#8]

[1.9.1]

Fixed

  • Changed fonts

Changed

  • emmet.js with the support flex css styles and many other combinations

[1.9.0]

Added

  • Autodetecting file mode by modelist.js [#7]
  • New modes from ace-builds for version 1.2.0

[1.8.0]

Added

  • Autocompletion for php functions

[1.7.0]

Added

  • System setting "ace.grow"
  • System setting "ace.html_elements_mime"

[1.6.5]

Added

  • "Twig" syntax for support of Twig in chunks

Changed

  • Plugin is not static anymore

[1.6.4]

Fixed

  • Support of emmet in smarty mode. Again.

[1.6.3]

Fixed

  • Support of emmet in smarty mode

[1.6.2]

Added

  • "Markdown" syntax for mime type "text/x-markdown"

Fixed

  • Editor mode handling

[1.6.1]

Fixed

  • Work with enabled system setting "compress_js"

[1.6.0]

Added

  • "Smarty" syntax for support of Fenom in chunks

Changed

  • Ace updated to version 1.2.0

[1.5.1]

Fixed

  • Bug with narrowing of the textarea

[1.5.0]

Added

  • Editor height setting

Changed

  • Assets moved back to /assets/

Fixed

  • MODx tag completions (was completely broken)

[1.4.3]

Added

  • MODx tag completions (Ctrl+Space)

Fixed

  • Issue caused AjaxManager (MODx Manager speed booster plugin) tree drag'n'drop bug

[1.4.2]

Added

  • Undo coalescing
  • Drag delay for Mac (allow to start new selection inside current one)

Changed

  • Mac fullscreen command bound to Command+F12

Fixed

  • Use file extension of static chunks to detect code syntax

[1.4.1]

Added

  • Expandable snippets support (see ace.snippets setting)
  • Emmet wrap_with_abbreviation command (Alt+W)

Fixed

  • Tab handling
  • Emmet shortcut listing by Ctrl+Alt+H

[1.4.0]

Added

  • Emmet (Zen Coding) support
  • Terminal dark theme
  • Hotkey table (Ctrl+Alt+H)

Changed

  • Assets moved to /manager/assets/components/

Fixed

  • Resource overview fatal error

[1.3.3]

Added

  • PHP live syntax check
  • Chaos dark theme
  • Setting show_invisibles

[1.3.2]

Added

  • Tab settings (tab size, soft tab)
  • Full compatibility with AjaxManager extra

Fixed

  • Bug while installing Ace
  • Broken word_wrap setting

[1.3.1]

Changed

  • Plugin content now stored in static file

[1.3.0]

Added

  • German translation
  • MODx tags highlighting
  • Ambiance and xcode themes
  • less/scss syntax highlighting
  • Fullwindow mode (Ctrl+F11)

Changed

  • Editor now ignores wich_editor setting. Set use_editor to false to use ACE for Resources.

[1.2.1]

Added

  • Font size setting
  • "GitHub" theme
  • Support of html5 drag'n'drop (accepting dropped text)
  • XML/HTML tag autoclosing

Changed

  • Assets moved to manager folder

Fixed

  • Broken en lexicon and PHP 5.3 incompatibility

[1.2.0]

Added

  • Add missing "OnFileEditFormPrerender" event to MODx
  • Multiline editing
  • Advanced find/replace window

Changed

  • Editor options moved to system settings
  • Removed some unnecessary options

Fixed

  • Multiple little editor bugs

[1.1.0]

Added

  • File edition support
  • MODx tree elements drag'n'drop support
  • Auto-assigning which_element_editor to Ace

Fixed

  • Fatal error on document create event
  • Changing of properties has no effect

[1.0.0]

Added

  • Plugin properties to adjust how Ace behaves
  • Initial release

Current releases

1.9.12-pl
View | Download
November 6, 2026
2.0 - Current

1.9.8-pl
View | Download
March 17, 2026
2.0 - Current

1.9.7-pl
View | Download
March 17, 2026
2.0 - Current

1.9.6-pl
View | Download
March 17, 2026
2.0 - Current

1.9.3-pl
View | Download
May 15, 2022
2.0 - Current

1.9.2-pl
View | Download
August 25, 2021
2.0 - Current

1.9.1-pl
View | Download
November 12, 2020
2.2 - Current

1.8.0-pl
View | Download
February 28, 2019
2.2 - Current