- Utilities for implementing an indentation/navigation engine using a generalized LALR parser
- wisi-184.108.40.206.20211124.100157.tar, 2021-Nov-24, 2.33 MiB
- Stephen Leake <firstname.lastname@example.org>
- Home page
- Browse ELPA's repository
- CGit or Gitweb
To install this package, run in Emacs:
M-x package-install RET wisi RET
Emacs wisi package 3.1.7
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 requires the AdaCore gnat compiler
that you may not have installed. It is available in many packaging
systems, or as a binary download from
GNU Emacs wisi NEWS -- history of user-visible changes.
Copyright (C) 2014 - 2020 Free Software Foundation, Inc.
Please send wisi bug reports to email@example.com, with
'wisi' in the subject. If possible, use M-x report-emacs-bug.
* wisi 3.1.7
21 Nov 2021
** Correct last fix (sigh).
* wisi 3.1.6
21 Nov 2021
** Adapt to change in xref.el xref-file-location.
* wisi 3.1.5
30 Jul 2021
** Update several SAL files for compatibility with gnat FSF 11, Pro
22, Community 2021.
* wisi 3.1.3, 3.1.4 packaging error
* wisi 3.1.2
4 Jun 2020
** New dispatching function wisi-xref-completion-delim-regex for
setting completion delimiters; example use in gpr-query.el.
** wisi-get-identifier (used by wisi-goto-spec/body and others) sets
completion delimiters using wisi-xref-completion-delim-regex.
** A bug in wisi-before-change is fixed; it was missing many buffer
changes, causing the parser not to be run when it should be.
* wisi 3.1.1
14 May 2020
** packaging bug fix
* wisi 3.1.0
11 May 2020
** Add Wisitoken.Syntax_Trees.Insert_Token, to allow using inserted
virtual terminals tokens in indent. Several related changes to
allow treating virtual terminals on par with actual terminals.
** New elisp generic functions: wisi-xref-completion-table, wisi-xref-completion-regexp, wisi-xref-completion-at-point-table
** New elisp functions: wisi-filter-table, wisi-completion-at-point, wisi-skel-add-token-after
** wisi-get-identifier uses wisi-xref-completion-table.
** wisi-prj-identifier-at-point returns (IDENT START END)
** In wisi.ads: augmented tokens are no stored only in the syntax
tree; new functions Get_Aug_Token_Const_1, Get_Aug_Token_Const,
Get_Aug_Token_Var provide access to them. Parse_Data_Type contains
a reference to the shared Terminals.
* wisi 3.0.1
30 Jan 2020
** fix packaging bugs
** improve xref integration
* wisi 3.0.0
19 Dec 2019
** parser process protocol version 5
** Add project.el integration. See wisi.info for more information.
** Move autocase functions from ada-mode to wisi.
** Replace most ada-mode function variables with dispatching on wisi-prj.
** New commands `wisi-goto-containing-statement-start', `wisi-indent-containing-statement'.
** Displayed parser errors are sorted in increasing error position.
* wisi 2.2.1
17 Aug 2019
** parser process protocol version 4
** fix packaging bugs
* wisi 2.2.0
13 Aug 2019
** parser process protocol version 3
** Support for the elisp parser and lexer is deleted; only the Ada
process parser is supported.
** New user variable `wisi-indent-context-lines' specifies the minimum
number of lines before point to include in a parse for indenting a
single line. This gives better results when indenting in a nested
'if then else', for example. The default value is 0; you must
change it to see an effect.
** Error correction is faster by approximately 30%;
%mckenzie_enqueue_limit can be raised accordingly.
** %mckenzie_enqueue_limit is now applied to the total of all parsers
in recovery; previously, it was applied to each parser separately.
Applying to the total gives a more consistent maximum user wait
time for recovery, at the cost of not finding solutions when there
are many parsers involved. You may want to increase
%mckenzie_enqueue_limit for this as well.
** In the process parser, `wisi-statement-start' now sets 'containing'
in all contained caches to the start token, if not set already;
previously it only did this if the token was mentioned in the
`wisi-statement-start' action. This makes `wisi-containing-action'
** `wisi-containing-action' is deleted.
** An argument of `wisi-motion-action' that is a vector may now
provide only one token ID. That token ID is searched for in the
containing token region, and the motion token chain starting at the
first one found is included in the current right hand side motion
** The process parser support...