bnf-mode NEWS -- history of user-visible changes.

Copyright (C) 2019-2024 Free Software Foundation, Inc.
See the end of the file for license conditions.

This file is about changes in BNF Mode.

* BNF Mode 0.5.0
** Incompatible changes.
*** Dropped support for GNU Emacs < 27.1.
BNF Mode no longer support GNU Emacs versions older than 27.1.  This
change allows to use modern APIs, like `rx-define', and simplifies CI
workflows by not having to accommodate outdated Emacs versions.  If
you are still using an older version of Emacs or other flavors (e.g.,
XEmacs), please stick with an earlier version of BNF Mode.

*** Removed the 'bnf-rx' macro.
The `bnf-rx' macro is no longer part of BNF Mode as it's no longer
necessary.  BNF Mode now fully utilizes the modern `rx' API, relying
directly on `rx-define' for pattern definitions.

*** Removed the 'bnf-rx-constituents' constant.
BNF Mode no longer uses the `bnf-rx-constituents' constant.  Instead,
it now relies on `rx-define' to define patterns directly, utilizing
the modern `rx' API to simplify and streamline pattern definitions.

** Syntax Table changes.
*** Improved Syntax Table Handling.
Changed the syntax classification of :, =, and | from symbol
constituents to punctuation characters.  This adjustment ensures that
navigation commands like C-M-f and C-M-b work as expected, treating
these characters as separate tokens rather than part of a symbol.

*** Improved Handling of Angle Brackets.
Changed the default syntax classification of < and > to punctuation
characters.  Introduced the `bnf--syntax-propertize' constant that
performs a detailed examination of the buffer content.  It selectively
reclassifies < and > as angle brackets (delimiter characters) only
when they enclose nonterminal symbols.  This approach allows for more
accurate syntax highlighting and parsing, especially in lines where
angle brackets are not part of nonterminals.  By defaulting to
punctuation and then dynamically adjusting the syntax properties as
needed, we ensure that angle brackets are correctly interpreted in
various contexts within BNF grammar files.

*** Fixed Incorrect Symbol Classification.
Adjusted the syntax entries for characters like ', ", (, ), {, }, [,
and ] to be treated as punctuation rather than symbols.  This change
prevents these characters from being incorrectly grouped with adjacent
symbols, enhancing text manipulation and editing commands.

* BNF Mode 0.4.5
** Tests were migrated from ert-runner to buttercup.
Previously BNF Mode used `ert' through `ert-runner' for testing
purposes.  However, it seems `ert-runner' is semi-abandoned.  Thus,
tests were migrated to use more aggressively maintained test
framework calles `buttercup'.

** Removed support of ALGOL 60 style comments.
Actually, this syntax was never part of the BNF and was mistakenly
interpreted as an alternative way of commenting BNF grammars
introduced by Peter Naur.

* BNF Mode 0.4.4
** Rework documentation and provide Info-file.
Previous releases of BNF Mode were bundled with incorrect “dir” file
that contained an invalid link to documentation.  This was
resolved.  All documentation now lives in “info bnf-mode”.

* BNF Mode 0.4.3
** Fixed dependency list in the Cask file.
Dependency list was fixed by specifying `cl-lib' version as well as
removing `rx' (`rx' is part of GNU Emacs actually).  This fixed the
issue reported in <https://github.com/sergeyklay/bnf-mode/issues/5>.
The issue is related to installation from the TAR file.

** CI/CD process was moved on GitHub Actions.

* BNF Mode 0.4.2
** First release in ELPA.

** Introduced ALGOL 60 comments style. Disabled by default.

** Use semicolons as a comments.
Only setting `bnf-mode-algol-comments-style' to non-nil will allow use
semicolons as a regular terminal symbols.

* BNF Mode 0.4.1
** Minor fix related to build & deploy BNF Mode on Travis CI.

* BNF Mode 0.4.0
** Added comment-start-skip to improve recognize comments.

** Return back comment-start and comment-end.

** Use more intelligent terminal syntax recognition.
Added support of ";" character as an extra character used in terminals.

** Provided ability to build installation package.
See make help for more.

* BNF Mode 0.3.2
** First release in MELPA.

** Treat ' and " as a regular symbols.

** Removed no longer needed comment-* variables.

** In the BNF there are no grouping brackets except angle ones.

** Removed the bnf-mode-version function.
Users can easily call describe-package or pkg-info-package-version
interactively if they want to get this information.

* BNF Mode 0.3.1
** Fixed BNF rule name definition to follow ALGOL 60 report.

* BNF Mode 0.3.0
** Nonterminals may be preceded by an unlimited number of spaces.

* BNF Mode 0.2.0
** Comments are no longer use syntax table.

** Changed comment syntax from "#" to ";" to follow RFC822#2.8.

* BNF Mode 0.1.0
** Initial stable release.



----------------------------------------------------------------------
BNF Mode is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

BNF Mode is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with BNF Mode.  If not, see <https://www.gnu.org/licenses/>.


Local variables:
coding: utf-8
mode: emacs-news
paragraph-separate: "[ 	]*$"
end:
