Releases: emacs-php/php-mode
Support Emacs 30(pretest) and PHP 8.4 syntax
Added
- Support PHP 8.4 property-hooks (#797)
Changed
- Improve
php-syntax-propertize-extend-regionefficiency (#789, thanks @phil-s!) - Update
php-phpdoc-type-namesto support PHPStan 2.0.4 (#795)
Fixed
- Fix Emacs 30 byte-compile errors (#792)
- Use
when-let*instead ofwhen-letto enhance Emacs 30 compatibility (#796)
Removed
- Drop support for Emacs 26 (#788)
Full Changelog: v1.26.1...v1.27.0
v1.26.1 - Sunset of Emacs 26
Note
This is the last release that supports Emacs 26.x. Please read Drop Emacs 26 Support · Issue #771.
Added
- Add
php-base-modewhich is the base of php related modes (#772)php-base-modeis designed as a common parent mode forphp-modeand.php-ts-mode
Changed
- Make
php-modeinherit fromphp-base-modeinstead ofc-mode(#772) - Modify indentation of PEAR Coding Standards (#774, #777)
- Remove
$from face names for interoperability with treesit (#780, emacs-php/php-ts-mode#68)php-$this→php-thisphp-$this-sigil→php-this-sigil
- Add
php-function-call-standardface inheritfont-lock-function-call-faceon Emacs 29.1 and above (#782, thanks @bricka!) - Add
-tranditionalsuffix to thephp-*-callfaces.php-function-call→php-function-call-traditionalphp-method-call→php-method-call-traditionalphp-static-method-call→php-static-method-call-traditional
- Add variables for the
php-function-call,php-method-call, andphp-static-method-callfaces, defaulting to the-traditionalface. - Changes how
php-syntax-propertize-rulesare applied for the first time. (#785 and #786)- This change is expected to make heredoc and attribute coloring more stable and reduce flicker.
Removed
- Remove
php-mode-disable-c-mode-hookcustom variable andphp-mode-neutralize-cc-mode-effectfunction (#775)php-modeno longer inheritsc-mode, so this variable won't work.
Full Changelog: v1.25.1...v1.26.1
Support Emacs 29 and master branch
Added
- Add
php-topsy-beginning-of-defun-with-classto display classname with function signature. (#766) - Add missing
__DIR__tophp-magical-constants(#756, thanks @piotrkwiecinski)
Changed
- Make developer build task in Makefile now depends on Eask. (#762, thanks @jcs090218)
- This change does not affect package installation users
- Read CONTRIBUTING.md if you prefer to build it yourself from zip or tar ball
Fixed
- Fixed build failure in Emacs on master branch (#764, #765, #767, thanks @takeokunn)
Removed
Support Emacs 29
Note
This released version supports Emacs 29.
Please feel free to write to disucuss if you have problems upgrading to Emacs 29.
Added
Fixed
- Fixed many byte compilation errors on Emacs 29 and 30
- These patches contributed by Stefan Monnier (#737, #739 and #740, thanks Stefan!)
- Fixed PEAR method chaining wrong indentation (#745 and #746, thanks @cweiske!)
- Fixed
php-mode-debug-reinstallcommand (#747, #748)
Removed
v1.24.3
This version will be the last release to support Emacs 25. #729
Added
- Net feature:
php-format(#731)- Add
php-format-projectandphp-format-this-buffer-filecommands - Add
php-format-auto-modeminor mode
- Add
- Experimental feature:
php-ide(#709)- Add
php-ide-phpactoras simple IDE feature without LSP clients - Add
php-ide-modeminor mode for binding IDE-like features
- Add
Fixed
Removed
- No longer highlights
'linkin PHPDoc (#724)- Please use
goto-address-prog-modeminor mode
- Please use
v1.24.2
Added
- New feature:
php-complete- Add
php-complete-complete-functionto autocomplete function names (#708)
- Add
- New feature:
php-flymake- Add
php-flymakeas a flymake backend compatible with Emacs 26 and above (#718)
- Add
- Supports PHPDoc tags and types for static analysis tools (#710, #715, #716], #717, thanks to @takeokunn)
- Please refer to the article below
- PHPStan: PHPDoc Types
- PHPStan: PHPDocs Basics
- Psalm: Atomic Type Reference
- Psalm: Supported Annotations
- Psalm: Template Annotations
- Please refer to the article below
- Add
php-mode-replace-flymake-diag-functioncustom variable and default activated it (#718) - Add
php-mode-debug-reinstallcommand to help users who update Emacs themselves (#721)
Changed
- Make continued expressions inside lists (arguments and arrays, etc.) have the same indent width as outside the list (#703)
- (internal) Improved readability of test failures about indentation (#707)
php-doc-annotation-taginheritsfont-lock-doc-markup-faceif defined in Emacs 28 (#711)- Make
php-mode-versionfunction include a Git tag and revision (#713)- Like
"1.23.4-56-xxxxxx"for example.
- Like
- Change
php-phpdoc-type-keywordstophp-phpdoc-type-namesto avoid confusion (#717) - Make
php-flymake-php-initappend toflymake-allowed-file-name-masksonly in legacy Flymake (#718)
Deprecated
- Make obsolete
php-mode-version-numbercontstant variable (#712)(php-mode-version :as-number t)is provided for use cases comparing as versions, but generally SHOULD NOT be dependent on the PHP Mode version.
- Make obsolete
php-mode-disable-c-mode-hookcustomize variable (#718)
Removed
- Remove
php-mode-disable-c-auto-align-backslashesas it doesn't make sense and is always disabled
Fixed
- Removed invalid definitions that caused errors in some expressions (#704)
Full Changelog: v1.24.1...v1.24.2
Improve PHP 8.1 and Emacs 28 support
Added
- Support new PHP 8.0 and 8.1 syntax highlighting and indentation
- [8.0]
#[Attributes] - [8.1]
readonlyproperty (#680)
- [8.0]
- Add
php-imenu-generic-expression-defaultfor default value orphp-imenu-generic-expression- Add
php-imenu-generic-expression-legacyfor compatibility - Add
php-imenu-generic-expression-simplefor simple display
- Add
- Add
php-project-project-find-functioncompatible withproject-find-functions(#693)
Changed
- Optimized propertize process (#669)
- Reimoplement
php-syntax-propertize-functionusingsyntax-propertize-rules - Make propertize PHP 8
#[Attribute]always enabled - Changed grouping of
php-heredoc-start-re
- Reimoplement
- Re-organized
php-imenu-generic-expression- Added
Import,ConstantsandProperties - Removed
Anonymous Functions - Renamed
Named FunctionstoFunctions - Renamed
All MethodstoMethods - Removed
Public Methods,Protected MethodsandProvate Methods - Unified
Classes,Traits,InterfacesintoClasses
- Added
- Modified regexp patterns (#681)
- Suppress compile-time warnings (#683, #690, #697)
Fixed
- Fix
php-run-builtin-web-serverto expand root path (#699)
Support PHP 8.0 and 8.1 syntax (without Attributes)
Added
- Support new PHP 8.0 and 8.1 syntax hilighting and indentation
Changed
- Drop support for Emacs 24 and 25.1 (#654)
- Raises an error when the byte-compiled Cc Mode version does not match that version at runtime.
- You will need to recompile php-mode after the GNU Emacs version changes.
Removed
- Remove
(require 'add-log)
Fixed
Version 1.23.0 Support PHP 8 Attribute
Initial support for PHP8 has been added. PHPMode has some issues for compatibility with Emacs 27.0.
The list of all past contributors has been moved to AUTHORS.md.
This release is positioned as the last minor version of the PHP Mode 1.x series.
Added
- Add
php-project-use-projectile-to-detect-root(#608) - Add PHP file extensions to
auto-mode-alist(#609) - Add
php-mode-disable-c-auto-align-backslashes(#621) - Add PHP 8.0 Attribute syntax as vsemi (#626)
- Add feature
php-alignfrom tetsujin/emacs-php-align (#615, melpa/melpa#6759)
Changed
Removed
- Remove
php-mode-extra-constantsvariable and function. (#605)- This mechanism is for synchronizing the added user-defined constants with WebMode, but it hasn't worked since 2014.
Fixed
Version 1.22.2
A face has been added for coloring PHP syntax. Thank you @minikN!
This release is a minor modified version of the 1.22.x series.
PHP Mode 2.0 is planned to be released in January 2020.
Added
- Add
php-project-etags-fileandphp-project-apply-local-variables(#591) - Add
php-find-system-php-ini-fileandphp-inicommand (#593)
Changed
Removed
- Remove
php-mode-modifiedvariable (#590)
Fixed
- Fix anonymous class indentation (#598)