Ace
Best highlighted code editor that has been adapted for MODX
Creator: Danil Kostin (danya_postfactum)
Updated by: Ivan Bochkarev (ibochkarev)
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
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_editorwhen 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.themelistskr_themeinstead ofkrin 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. MODXmodScript::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 intoace.snippetson fresh install/upgrade when the setting is empty (#36). - System setting
ace.draft_restoreto save editor drafts in browser localStorage and restore after accidental reload (#33). - System setting
ace.color_previewto tint CSS color literals (#hex, rgb/hsl) in CSS/HTML modes (#34). - System setting
ace.auto_close_tagsto 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.onSaveEditorsyncs the original Ext field (#25). - Resource content form: Ace no longer replaces
#tawhen another RTE is configured (which_editor≠ Ace). Withuse_editor=Yesand e.g. TinyMCE, non-richtext resources keep a plain textarea instead of Ace (#30). - Resource content form:
use_editoris read from the current context override when available, not only the global system setting (#35). onDestroyno longer throws when Ace was never initialized (destroy beforeonRenderor 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, somodx-rdata-bufferis not empty (#28). - Empty-field Ace init no longer waits up to 5s: async wait applies only to
modx-rdata-bufferon the resource overview cache tab. which_editorfor resource forms also respects context overrides (aligned withuse_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/setSizewhen Ace was never rendered. - Static Ace helpers (
DraftManager, settings getters) attach afterExt.extendso they are not overwritten;ace-color-preview.jsloads aftermodx.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.bodywhile maximized and uses a higherz-index, fixing stacking limits inside#modx-contentthat core PR modxcms/revolution#16778 does not address for extras (#18). - Fullscreen
.ace_maximizedinsets (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??. Bundledworker-php.jsupdated to ace-builds 1.37.5 (T_COALESCEand 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.phpwhen 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\modTransportPackagefor 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_editorsetting. Setuse_editorto 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