GNU ELPA - wisi


Utilities for implementing an indentation/navigation engine using a generalized LALR parser
wisi-2.1.0.tar, 2019-Mar-22, 1.60MB
Stephen Leake <>
Home page
Browse ELPA's repository
CGit or Gitweb

To install this package, run in Emacs:

M-x package-install RET wisi RET

Full description

Emacs wisi package 2.1.0

The wisi package provides utilities for using generalized LALR parsers
(in elisp or external processes) to do indentation, fontification, and
navigation. 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.

Old versions

wisi-1.1.6.tar2017-Oct-03 110kB
wisi-1.1.5.tar2017-Jul-09 100kB
wisi-1.1.4.tar2016-Oct-31 100kB
wisi-1.1.3.tar2016-Jul-27 100kB
wisi-1.1.2.tar2016-Jan-22 100kB
wisi-1.1.1.tar2015-Apr-13 100kB
wisi-1.1.0.tar2014-Nov-27 100kB


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

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

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

* wisi 2.1.0
21 Mar 2019

** Add support for partial parsing; useful in very large files. Files
   larger than wisi-partial-parse-threshold (default 100_001) will be
   parsed partially.

** Miscellaneous speed-ups in the Ada code; 'pragma Inline', better use of Ada tasks.

** Better error correction in the Ada process parser; insert minimimal
  tokens to complete a statement/declaration before or after the error

* wisi 2.0.1
8 Dec 2018

** Assign copyright in Ada files to FSF

** Update user guide, include it in elpa package

* wisi 2.0.0
17 Nov 2018

** Change indentation engine to compute indent directly in parser actions.

** Add error correcting external process parser.

** Factor out wisi-elisp-lexer.el from wisi.el, and
   ada-wisi-elisp-parse.el from ada-wisi.el. Move elisp grammar
   actions from wisi.el to wisi-elisp-parse.el; they are not used with
   the process parser.

** Add support for error corrections in parser; 'wisi-repair-error'
   can apply the corrections to the buffer text.

** Display marks in fringe at location of errors detected by
   background parser.

** include sources for wisitoken parser runtime, parser generator.

* wisi 1.1.6
3 Oct 2017

** wisi-forward-find-cache-token - new function.

** New minor-mode parse_table-mode helps navigating parse table
   listings output by 'wisi-generate -v 1'; useful when debugging

* wisi 1.1.5
9 Jul 2017

** wisi-indent-fallback allows setting the indent engine to use when
   the wisi engine fails.

** wisi-comment-indent now uses comment-column for comments following
   code on the same line.

** wisi-forward-statement-keyword tolerates end of buffer, and uses
   either cache-next or cache-end.

** forward-sexp-function is set to wisi-forward-sexp, which handles
   parens, strings, and statements.

* wisi 1.1.4
31 Oct 2016

** wisi-validate-cache takes optional error-on-fail arg.

* wisi 1.1.3
26 Jul 2016

** improve use of quotes in doc strings.

* wisi 1.1.2
20 Jan 2016

** wisi-compile no longer requires semantic.

** wisi-parse slightly faster

** minor bug fixes

** wisi-extend-action now takes two args (first last)

** wisi-face-action-1 optional arg no-override is replaced by override-no-error.

* wisi 1.1.1
10 Apr 2015

** rename wisi-font-lock-size-threshold to wisi-size-threshold, use
   for more things in ada-mode

* wisi 1.1.0
18 Nov 2014

** change wisi-forward-token to not return text; simpler, faster

** remove face from wisi-cache; set font-lock-face property directly.

** add support for numeric literal tokens.

** change wisi-*-action to take a vector of arguments; faster for
   external parser, catches more errors.

** add wisi-font-lock-size-threshold

* wisi 1.0.6
28 Sep 2014

** add face to wisi-cache

** wisi-before/after-change : improve checks for invalidate-cache

** wisi-motion-action takes class with each token-id

** new parse actions: wisi-extend-action, wisi-face-action

** new functions: wisi-goto-statement-start, -end.

** fix misc bugs

* wisi 1.0.5
12 Jul 2014

** wisi-parse-max-parallel-current - new variable for debugging slow parsing issues

** wisi-set-end - new algorithm giving significant speedup

* wisi 1.0.4
19 Apr 2014

** add support for GNAT Ada bracket hex character notation

* wisi 1.0.3
16 Mar 2014

** fix another packaging bug; forgot to add files to ELPA git!

* wisi 1.0.2
14 Mar 2014

** Emacs 24.2 supported, via cl-lib in Gnu ELPA

* wisi 1.0.1

** minor fixes for byte compiler warnings

* wisi 1.0
Feb 2 2014

** first release in ELPA