# Changelog

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.9.8] - 2026-03-05

### Fixed
- Fix fatal error when the resource does not exist
 ([#23](https://github.com/modx-pro/modx-ace/pull/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](https://github.com/modx-pro/modx-ace/issues/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
