branch: externals-release/wisi
commit 1c4b099bf1f93cebee523b0ba75ccab6c6c2a2f0
Author: Stephen Leake <[email protected]>
Commit: Stephen Leake <[email protected]>
Release 4.3.2
* NEWS: Version.
* README:
* wisi.el:
---
NEWS | 7 ++++++-
README | 2 +-
emacs_wisi_common_parse.adb | 2 +-
wisi-parse-common.el | 7 ++++++-
wisi-process-parse.el | 5 ++++-
wisi.el | 2 +-
wisitoken-bnf-generate.adb | 2 +-
wisitoken-syntax_trees.adb | 4 ++++
8 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/NEWS b/NEWS
index 2413062e57..bbd9f62724 100644
--- a/NEWS
+++ b/NEWS
@@ -6,10 +6,15 @@ Please send wisi bug reports to [email protected], 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.
+** Use WisiToken 4.2.0.
* wisi 4.2.3
26 Jan 2023
diff --git a/README b/README
index 7f73c3f30c..08fe5971a7 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Emacs wisi package 4.3.0
+Emacs wisi package 4.3.2
The wisi package provides utilities for using generalized
error-correcting LR parsers (in external processes) to do indentation,
diff --git a/emacs_wisi_common_parse.adb b/emacs_wisi_common_parse.adb
index 5fc3877ee7..4bedff3f55 100644
--- a/emacs_wisi_common_parse.adb
+++ b/emacs_wisi_common_parse.adb
@@ -2,7 +2,7 @@
--
-- See spec.
--
--- Copyright (C) 2018 - 2022 Free Software Foundation, Inc.
+-- Copyright (C) 2018 - 2023 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or
-- modify it under terms of the GNU General Public License as
diff --git a/wisi-parse-common.el b/wisi-parse-common.el
index 7d516b6385..d565c712e7 100644
--- a/wisi-parse-common.el
+++ b/wisi-parse-common.el
@@ -22,7 +22,7 @@
;;; Code:
(require 'cl-lib)
-(defcustom wisi-incremental-parse-enable nil
+(defcustom wisi-incremental-parse-enable t
"If non-nil, use incremental parse when possible."
:type 'boolean
:group 'wisi
@@ -240,6 +240,11 @@ The value is a list (source-buffer (font-lock-begin
region font-lock attempted to fontify while the parser was
busy.")
+(defvar wisi-parse-full-read-only nil
+ ;; Only one buffer can be doing a full parse.
+ "Non-nil if `wisi-parse-full-active is t and the buffer was
+originally read-only.")
+
(cl-defgeneric wisi-parse-incremental (parser parser-action &key full nowait)
"Incrementally parse current buffer.
PARSER-ACTION (one of `wisi-post-parse-actions') is used to
diff --git a/wisi-process-parse.el b/wisi-process-parse.el
index f5efea4974..60bbdaa2bf 100644
--- a/wisi-process-parse.el
+++ b/wisi-process-parse.el
@@ -151,7 +151,9 @@ Otherwise add PARSER to `wisi-process--alist', return it."
(wisi-parse-log-message wisi-parser-shared "parse--filter found
prompt - initial full"))
(if (buffer-live-p (car wisi-parse-full-active))
(with-current-buffer (car wisi-parse-full-active)
- (read-only-mode -1)
+ (if wisi-parse-full-read-only
+ (setq wisi-parse-full-read-only nil)
+ (read-only-mode -1))
(let ((region (cdr wisi-parse-full-active)))
(font-lock-flush (max (point-min) (car region)) (min
(point-max) (cdr region))))
@@ -1212,6 +1214,7 @@ Source buffer is current."
((and full nowait)
(set-process-filter (wisi-process--parser-process parser)
#'wisi-process-parse--filter)
(setq wisi-parse-full-active (cons (current-buffer) (cons (point-min)
(point-max))))
+ (setq wisi-parse-full-read-only buffer-read-only)
(read-only-mode 1)
(wisi-process-parse--send-incremental-parse parser full))
(t
diff --git a/wisi.el b/wisi.el
index 7ac38a6e9d..ba704d36f9 100644
--- a/wisi.el
+++ b/wisi.el
@@ -7,7 +7,7 @@
;; Keywords: parser
;; indentation
;; navigation
-;; Version: 4.3.0
+;; Version: 4.3.2
;; package-requires: ((emacs "25.3") (seq "2.20"))
;; URL: https://stephe-leake.org/ada/wisitoken.html
;;
diff --git a/wisitoken-bnf-generate.adb b/wisitoken-bnf-generate.adb
index fbc83d0a8e..fa5f128841 100644
--- a/wisitoken-bnf-generate.adb
+++ b/wisitoken-bnf-generate.adb
@@ -54,7 +54,7 @@ is
use Ada.Text_IO;
First : Boolean := True;
begin
- Put_Line (Standard_Error, "version 4.2"); -- matches release version in
Docs/wisitoken.html
+ Put_Line (Standard_Error, "version 4.2.1"); -- matches release version
in Docs/wisitoken.html
Put_Line (Standard_Error, "wisitoken-bnf-generate [options] {wisi
grammar file}");
Put_Line (Standard_Error, "Generate source code implementing a parser
for the grammar.");
New_Line (Standard_Error);
diff --git a/wisitoken-syntax_trees.adb b/wisitoken-syntax_trees.adb
index 41232b6f14..7bcbcc31b9 100644
--- a/wisitoken-syntax_trees.adb
+++ b/wisitoken-syntax_trees.adb
@@ -7534,6 +7534,10 @@ package body WisiToken.Syntax_Trees is
Shared_Link => Tree.Stream_First (Tree.Shared_Stream, Skip_SOI =>
True).Element.Cur,
Elements => <>)))
do
+ -- WORKAROUND: This is broken by gnat 13; ada-mode
+ -- test/ada_mode-function_2.adb fails with a ref_count error.
+ Tree.Enable_Ref_Count_Check (Result, Enable => False);
+
Tree.Next_Stream_Label := @ + 1;
end return;
end New_Stream;