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
    delete wisi-mckenzie-disable, -check-limit
    add incremental parse
    increase command length to 4 digits
    add query_tree command

* wisi 3.1.3
5 Jun 2020

** Fix packaging bug.

* 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'
   unnecessary.

** `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
   token chain.

** The process parser supports a new parse command `wisi-refactor',
   which returns a new message "Edit". It is intended for performing
   syntax-guided refactoring of code statements.

* wisi 2.1.1
11 Jul 2019

** parser process protocol version 3

** User variable wisi-mckenzie-cost-limit is deleted; set
   wisi-mckenzie-enqueue-limit instead, it gives better results.

** `wisi-show-parse-errors' now shows errors in a dedicated window, so
   it will not be resized or reused.

** New grammar action `wisi-name-action'; sets a name that will be
   fontified. This replaces the previous 'name' navigate class.

** Support 'nil' as an indent argument; useful for the first token,
   whose indent is typically unknown. Indent functions that do not
   accumulate now only check for "nil", not "zero or nil".

** New file wisi-xref.el provides a completion table built from tokens
   marked by the new grammar action `wisi-name-action'.

** The process parser checks the parser process protocol version, to
   ensure the elisp code matches the process code.

** The process parser supports passing data to a language-specific
   elisp function, via the `language-action-table' field of the
   `wisi-process--parser' struct.

** New user option `wisi-parse-max-parallel' to set the number of
   parallel parsers used; Java needs more than Ada.

* wisi 2.1.0
21 Mar 2019

** parser process protocol version 2

** 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
  point.

* wisi 2.0.1
8 Dec 2018

** parser process protocol version 1

** 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
   grammars.

* 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
