Skip to content

Releases: emacs-php/php-mode

Support Emacs 30(pretest) and PHP 8.4 syntax

19 Dec 16:13
c3fa4e0
Compare
Choose a tag to compare

Added

  • Support PHP 8.4 property-hooks (#797)

Changed

  • Improve php-syntax-propertize-extend-region efficiency (#789, thanks @phil-s!)
  • Update php-phpdoc-type-names to support PHPStan 2.0.4 (#795)

Fixed

  • Fix Emacs 30 byte-compile errors (#792)
  • Use when-let* instead of when-let to 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

12 Sep 22:20
Compare
Choose a tag to compare

Note

This is the last release that supports Emacs 26.x. Please read Drop Emacs 26 Support · Issue #771.

Added

  • Add php-base-mode which is the base of php related modes (#772)
    • php-base-mode is designed as a common parent mode for php-mode and php-ts-mode.

Changed

  • Make php-mode inherit from php-base-mode instead of c-mode (#772)
  • Modify indentation of PEAR Coding Standards (#774, #777)
    • No longer overindent it by default, since we don't see any mention in the coding style that it should hang .. (refs #227 and #229)
    • If you have any feedback on PEAR style, please let us know in the discussion #776.
  • Remove $ from face names for interoperability with treesit (#780, emacs-php/php-ts-mode#68)
    • php-$thisphp-this
    • php-$this-sigilphp-this-sigil
  • Add php-function-call-standard face inherit font-lock-function-call-face on Emacs 29.1 and above (#782, thanks @bricka!)
  • Add -tranditional suffix to the php-*-call faces.
    • php-function-callphp-function-call-traditional
    • php-method-callphp-method-call-traditional
    • php-static-method-callphp-static-method-call-traditional
  • Add variables for the php-function-call, php-method-call, and php-static-method-call faces, defaulting to the -traditional face.
  • Changes how php-syntax-propertize-rules are 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-hook custom variable and php-mode-neutralize-cc-mode-effect function (#775)
    • php-mode no longer inherits c-mode, so this variable won't work.

Full Changelog: v1.25.1...v1.26.1

Support Emacs 29 and master branch

23 Nov 20:54
0c55240
Compare
Choose a tag to compare

Added

  • Add php-topsy-beginning-of-defun-with-class to display classname with function signature. (#766)
  • Add missing __DIR__ to php-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

Removed

  • Removed Phan-specific features from php-project (#754)
  • Removed Cask and Keg metadata files for building (#770)

Support Emacs 29

23 Jul 19:12
168fc4e
Compare
Choose a tag to compare

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
  • Fixed PEAR method chaining wrong indentation (#745 and #746, thanks @cweiske!)
  • Fixed php-mode-debug-reinstall command (#747, #748)

Removed

v1.24.3

18 Mar 21:24
c601f75
Compare
Choose a tag to compare

This version will be the last release to support Emacs 25. #729

Added

  • Net feature: php-format (#731)
    • Add php-format-project and php-format-this-buffer-file commands
    • Add php-format-auto-mode minor mode
  • Experimental feature: php-ide (#709)
    • Add php-ide-phpactor as simple IDE feature without LSP clients
    • Add php-ide-mode minor mode for binding IDE-like features

Fixed

  • Fix array indentation broken by commenting out (#726, #732)

Removed

  • No longer highlights 'link in PHPDoc (#724)
    • Please use goto-address-prog-mode minor mode

v1.24.2

12 Nov 16:19
d01cfc9
Compare
Choose a tag to compare

Added

  • New feature: php-complete
    • Add php-complete-complete-function to autocomplete function names (#708)
  • New feature: php-flymake
    • Add php-flymake as a flymake backend compatible with Emacs 26 and above (#718)
  • Supports PHPDoc tags and types for static analysis tools (#710, #715, #716], #717, thanks to @takeokunn)
  • Add php-mode-replace-flymake-diag-function custom variable and default activated it (#718)
  • Add php-mode-debug-reinstall command 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-tag inherits font-lock-doc-markup-face if defined in Emacs 28 (#711)
  • Make php-mode-version function include a Git tag and revision (#713)
    • Like "1.23.4-56-xxxxxx" for example.
  • Change php-phpdoc-type-keywords to php-phpdoc-type-names to avoid confusion (#717)
  • Make php-flymake-php-init append to flymake-allowed-file-name-masks only in legacy Flymake (#718)

Deprecated

  • Make obsolete php-mode-version-number contstant 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-hook customize variable (#718)

Removed

  • Remove php-mode-disable-c-auto-align-backslashes as 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

08 Sep 02:21
Compare
Choose a tag to compare

Added

  • Support new PHP 8.0 and 8.1 syntax highlighting and indentation
    • [8.0] #[Attributes]
    • [8.1] readonly property (#680)
  • Add php-imenu-generic-expression-default for default value or php-imenu-generic-expression
    • Add php-imenu-generic-expression-legacy for compatibility
    • Add php-imenu-generic-expression-simple for simple display
  • Add php-project-project-find-function compatible with project-find-functions (#693)

Changed

  • Optimized propertize process (#669)
    • Reimoplement php-syntax-propertize-function using syntax-propertize-rules
    • Make propertize PHP 8 #[Attribute] always enabled
    • Changed grouping of php-heredoc-start-re
  • Re-organized php-imenu-generic-expression
    • Added Import, Constants and Properties
    • Removed Anonymous Functions
    • Renamed Named Functions to Functions
    • Renamed All Methods to Methods
    • Removed Public Methods, Protected Methods and Provate Methods
    • Unified Classes, Traits, Interfaces into Classes
  • Modified regexp patterns (#681)
  • Suppress compile-time warnings (#683, #690, #697)

Fixed

  • Fix php-run-builtin-web-server to expand root path (#699)

Support PHP 8.0 and 8.1 syntax (without Attributes)

07 Mar 14:48
7e1b553
Compare
Choose a tag to compare

Added

  • Support new PHP 8.0 and 8.1 syntax hilighting and indentation
    • [8.0] match expression (#632)
    • [8.0] mixed pseudo type declaration (#633)
    • [8.1] enum statement (#653)

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

  • Fix font-lock highlighting
  • Fix Heredoc and Nowdoc highlighting (#651 thanks @antoineB!)
  • Fix documentation mistake
    • php-mode-lineup-cascaded-calls in README.md (#644 thanks @cweiske!)

Version 1.23.0 Support PHP 8 Attribute

06 May 11:31
08c6e0f
Compare
Choose a tag to compare

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)
    • .php.inc is file extension for Rector's test code.
    • .stub is file extension for PHPStan's stub file.
  • Add php-mode-disable-c-auto-align-backslashes (#621)
  • Add PHP 8.0 Attribute syntax as vsemi (#626)
  • Add feature php-align from tetsujin/emacs-php-align (#615, melpa/melpa#6759)

Changed

  • Disable c-auto-align-backslashes by default. (#621)
  • Add new faces and font locking (#611, #614)

Removed

  • Remove php-mode-extra-constants variable and function. (#605)
    • This mechanism is for synchronizing the added user-defined constants with WebMode, but it hasn't worked since 2014.

Fixed

  • Fix indentation of object operator (->) at the beginning of line (#623, #624)

Version 1.22.2

24 Dec 11:04
433864b
Compare
Choose a tag to compare

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-file and php-project-apply-local-variables (#591)
  • Add php-find-system-php-ini-file and php-ini command (#593)

Changed

  • Improve PHP syntax highlighting (by @minikN)
    • Add support for multiple operators (#594)
    • Add => to assignment operators (#602, #603)
  • Plain faces no longer inherit default (#597)

Removed

  • Remove php-mode-modified variable (#590)

Fixed

  • Fix anonymous class indentation (#598)