wisi

Description
Utilities for implementing an indentation/navigation engine using a generalized LR parser
Latest
wisi-4.3.2.0.20240313.173240.tar (.sig), 2024-Apr-24, 3.57 MiB
Maintainer
Stephen Leake <stephen_leake@stephe-leake.org>
Atom feed
wisi.xml
Website
https://stephe-leake.org/ada/wisitoken.html
Browse ELPA's repository
CGit or Gitweb
Badge
Manual
wisi wisitoken-user_guide

To install this package from Emacs, use package-install or list-packages.

Full description

Emacs wisi package 4.3.2

The wisi package provides utilities for using generalized
error-correcting LR parsers (in external processes) to do indentation,
fontification, and navigation; and integration with Emacs package.el.
See ada-mode for an example of its use.

It also provides wisitoken-parse_table-mode, for navigating the
diagnostic parse tables output by wisitoken-bnf-generate.

The generated code is in Ada; it can be built via Alire
(https://alire.ada.dev/). Normally this is done by a package that uses
wisi, such as ada-mode.

Old versions

wisi-4.3.2.0.20231026.105332.tar.lz2023-Oct-26 455 KiB
wisi-4.3.0.0.20231018.92008.tar.lz2023-Oct-23 455 KiB
wisi-4.2.2.0.20230126.2042.tar.lz2023-Jan-26 442 KiB
wisi-4.2.0.0.20230111.162957.tar.lz2023-Jan-12 442 KiB
wisi-4.1.1.0.20221221.82801.tar.lz2022-Dec-21 446 KiB
wisi-3.1.8.0.20220710.91007.tar.lz2022-Jul-10 448 KiB
wisi-3.1.7.0.20211124.100157.tar.lz2021-Nov-24 300 KiB
wisi-3.1.6.0.20211121.80330.tar.lz2021-Nov-21 299 KiB
wisi-3.1.5.0.20210730.233202.tar.lz2021-Jul-31 299 KiB
wisi-3.1.3.0.20201128.194735.tar.lz2020-Dec-14 295 KiB

News

GNU Emacs wisi NEWS -- history of user-visible changes.

Copyright (C) 2014 - 2023 Free Software Foundation, Inc.

Please send wisi bug reports to bug-gnu-emacs@gnu.org, with
'wisi' in the subject. If possible, use M-x report-emacs-bug.


* wisi 4.3.2
21 Oct 2023

** wisi-incremental-parse-enable is now t by default.

* wisi 4.3.0
15 Sep 2023

** Use WisiToken 4.2.0.

* wisi 4.2.3
26 Jan 2023

** Fix byte-compiler warnings reported by Emacs master.

* wisi 4.2.2
16 Jan 2023

** Fix bug in wisi parser startup.

* wisi 4.2.0
3 Jan 2023

** New user variables wisi-disable-completion,
   wisi-disable-diagnostics, wisi-disable-indent, wisi-disable-parser,
   wisi-disable-statement to control various features. Normally set by
   the major mode when it chooses which backends to use.

** New wisi project file statement; @code{import_env_var} - copies the
   value of an environment variable from @code{process-environment} to
   the project environment variables.

** Case exception files declared in a wisi project file are now
   searched for on the project file search path.

** No longer displays right fringe marks, that were supposed to show
   the location of erros within a file; too hard to get right and
   maintain, not very useful.

** No longer sets global value of skeleton-end-hook.

** Several small bug fixes

** parser process protocol version 7

   Add commands dump_prev_tree, save_prev_auto; useful for debugging
   incremental parse issues. Controlled by new user variable
   wisi-save-text-tree.
   
* wisi 4.1.1
8 Oct 2022

** Ada code builds with alire.

** gnat-compiler split out into separate ELPA package.

** A bug in updating the fringe error marks is fixed.

** Support using eglot to replace some wisi functions; new user
   configuration variables wisi-disable-face, wisi-disable-completion,
   wisi-disable-indent, wisi-disable-parser.

** In wisi project files, import_env_var=<name> can be used to inherit
   an environment variable from the Emacs process.

* wisi 4.0.0
22 Oct 2022 beta prompted to release

* wisi 4.0.beta
9 Jul 2022 beta testing

** Major redesign to support incremental parse.

** New user custom variable wisi-incremental-parse-enable; when
   non-nil, wisi uses incremental parse.

** There is now a log buffer showing all interactions with the parser
   process. The buffer name is given by
   (wisi-parser-transaction-log-buffer-name parser); for Ada it is
   "*Ada-wisi-parser-log*".

** The buffer-local variable containing the wisi parser object is
   split and renamed from wisi--parser to wisi-parser-shared, and
   wisi-parser-local. wisi-parser-shared points to a per-language
   structure; wisi-parser-local contains parser state that is buffer
   local, such as error messages.

** The new command wisi-parse-tree-query allows querying the stored
   parse tree for various things.

** Redesign how indents add, and what some indent functions mean; see
   wisi.info for details. In general, it is easier to arrange indent
   actions to get the desired result. This may require grammar file
   indent action changes; most likely add 'wisi-block' in block
   statements.

** The algorithm for naming conflicts is now more accurate, and the
   format of the %conflict declaration has changed. The old format is
   still supported. Some conflicts have the same name, but others will
   need to be updated.

** wisitoken-parse_table-mode now provides a command
   wisitoken-parse_table-conflict-goto that will find a conflict in
   the parse table file. wisitoken-grammar-mode binds that command to
   "\C-c."

** wisitoken-parse_table-mode now provides a command
   wisitoken-parse_table-goto that will find a nonterminal or state in
   the parse table file. It is recommended to bind that command to
   "\C-c.", either in global-key-map, or in modes that typically have
   nonterminals or states.

** parser process protocol version 6
    add zombie_limit
    add error-pos in Recover
    replace debug-mode, trace-mckenzie, trace-action with verbosity string
...
...