emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/wisi 2114f5a 28/35: In ada-mode and wisi, release ada-m


From: Stefan Monnier
Subject: [elpa] externals/wisi 2114f5a 28/35: In ada-mode and wisi, release ada-mode 6.2.1, wisi 2.2.1; fix packaging bugs
Date: Sat, 28 Nov 2020 14:47:57 -0500 (EST)

branch: externals/wisi
commit 2114f5a84782a6f3c20da9fe7d1e3e2391e5d573
Author: Stephen Leake <stephen_leake@stephe-leake.org>
Commit: Stephen Leake <stephen_leake@stephe-leake.org>

    In ada-mode and wisi, release ada-mode 6.2.1, wisi 2.2.1; fix packaging bugs
---
 NEWS                            |  7 +++++-
 README                          |  2 +-
 build-wisitoken-bnf-generate.sh |  4 +---
 wisi.el                         | 47 ++++++++++++++++++++++++++++++-----------
 wisi.gpr                        |  2 +-
 5 files changed, 44 insertions(+), 18 deletions(-)

diff --git a/NEWS b/NEWS
index bb8f8c6..8986e40 100644
--- a/NEWS
+++ b/NEWS
@@ -6,7 +6,12 @@ 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
+* wisi 2.2.1
+17 Aug 2019
+
+** fix packaging bugs
+
+* wisi 2.2.0
 13 Aug 2019
 
 ** parser process protocol version 3
diff --git a/README b/README
index c7176d2..f23d1d8 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Emacs wisi package 2.2.0
+Emacs wisi package 2.2.1
 
 The wisi package provides utilities for using generalized LALR parsers
 (in elisp or external processes) to do indentation, fontification, and
diff --git a/build-wisitoken-bnf-generate.sh b/build-wisitoken-bnf-generate.sh
index c087be6..0732e5a 100755
--- a/build-wisitoken-bnf-generate.sh
+++ b/build-wisitoken-bnf-generate.sh
@@ -1,9 +1,7 @@
 # Build wisitoken-bnf-generate.exe, for generating code from grammar files.
 # 
-# Assumes build.sh has run.
-#
 # Instead of using this, you should consider using the complete
 # wisitoken development tree; see
 # http://stephe-leake.org/ada/wisitoken.html
 
-gprbuild -p -P wisitoken.gpr wisitoken-bnf-generate
+gprbuild -p -P wisi.gpr wisitoken-bnf-generate
diff --git a/wisi.el b/wisi.el
index 3500f91..a7a2fbf 100644
--- a/wisi.el
+++ b/wisi.el
@@ -7,7 +7,7 @@
 ;; Keywords: parser
 ;;  indentation
 ;;  navigation
-;; Version: 2.2.0
+;; Version: 2.2.1
 ;; package-requires: ((emacs "25.0") (seq "2.20"))
 ;; URL: http://stephe-leake.org/ada/wisitoken.html
 ;;
@@ -208,6 +208,8 @@ Regions in a list are in random order.")
   (let ((region-list (cdr (assoc (or parse-action wisi--parse-action) 
wisi--cached-regions)))
        region)
     (while (and region-list
+               (marker-buffer (caar region-list)) ;; this can fail after 
editing during ediff-regions.
+               (marker-buffer (cdar region-list))
                (not (wisi--contained-region begin end (car region-list))))
       (pop region-list))
 
@@ -274,27 +276,43 @@ Truncate any region that overlaps POS."
 
 (defun wisi--delete-face-cache (after)
   (with-silent-modifications
-    (remove-text-properties after (point-max) '(font-lock-face nil))
-    )
-  (wisi-cache-delete-regions-after 'face after))
+    (remove-text-properties after (point-max) '(font-lock-face nil)))
+  (if (= after (point-min))
+      (setcdr (assoc 'face wisi--cached-regions) nil)
+    (wisi-cache-delete-regions-after 'face after)))
 
 (defun wisi--delete-navigate-cache (after)
   (with-silent-modifications
     ;; This text property is 'wisi-cache', not 'wisi-navigate', for
     ;; historical reasons.
-    (remove-text-properties after (point-max) '(wisi-cache nil wisi-name nil))
-    )
-  (wisi-cache-delete-regions-after 'navigate after))
+    (remove-text-properties after (point-max) '(wisi-cache nil wisi-name nil)))
+  (if (= after (point-min))
+      (setcdr (assoc 'navigate wisi--cached-regions) nil)
+    (wisi-cache-delete-regions-after 'navigate after)))
 
 (defun wisi--delete-indent-cache (after)
   (with-silent-modifications
-    (remove-text-properties after (point-max) '(wisi-indent nil))
-    )
-  (wisi-cache-delete-regions-after 'indent after))
+    (remove-text-properties after (point-max) '(wisi-indent nil)))
+  (if (= after (point-min))
+      (setcdr (assoc 'indent wisi--cached-regions) nil)
+    (wisi-cache-delete-regions-after 'indent after)))
 
 (defun wisi-invalidate-cache (action after)
   "Invalidate ACTION caches for the current buffer from AFTER to end of 
buffer."
-  (when (wisi-cache-contains-pos action after)
+  (cond
+   ((= after (point-min))
+    (cond
+     ((eq 'face action)
+      (wisi--delete-face-cache after))
+
+     ((eq 'navigate action)
+      (wisi--delete-navigate-cache after))
+
+     ((eq 'indent action)
+      (wisi--delete-indent-cache after))
+     ))
+
+   ((wisi-cache-contains-pos action after)
     (when (> wisi-debug 0) (message "wisi-invalidate-cache %s:%s:%d" action 
(current-buffer) after))
     (cond
      ((eq 'face action)
@@ -349,11 +367,12 @@ Truncate any region that overlaps POS."
              (line-beginning-position)))
       (wisi--delete-indent-cache (max 1 (1- after))))
      )
-    ))
+    )))
 
 (defun wisi-reset-parser ()
   "Force a parse."
   (interactive)
+  (syntax-ppss-flush-cache (point-min)) ;; necessary after edit during 
ediff-regions
   (wisi-invalidate-cache 'indent (point-min))
   (wisi-invalidate-cache 'face (point-min))
   (wisi-invalidate-cache 'navigate (point-min))
@@ -774,6 +793,10 @@ Usefull if the parser appears to be hung."
 `wisi--parse-action' must be bound."
   (when (and wisi--change-beg
             wisi--change-end
+            (or (integerp wisi--change-beg)
+                (marker-buffer wisi--change-beg)) ;; this can fail after 
editing during ediff-regions.
+            (or (integerp wisi--change-end)
+                (marker-buffer wisi--change-end))
             (<= wisi--change-beg wisi--change-end))
     (wisi--post-change wisi--change-beg (marker-position wisi--change-end))
     (setq wisi--change-beg most-positive-fixnum)
diff --git a/wisi.gpr b/wisi.gpr
index 8ca2dd2..27e890d 100644
--- a/wisi.gpr
+++ b/wisi.gpr
@@ -32,7 +32,7 @@ project Wisi is
       for Exec_Dir use ".";
    end case;
 
-   for Languages use ("Ada");
+   for Languages use ("Ada", "C"); -- C needed for wisitoken-bnf-generate; 
wisitoken_grammar_re2c.c
 
    package Compiler is
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]