Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package emacs-jinx for openSUSE:Factory 
checked in at 2026-10-05 12:55:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/emacs-jinx (Old)
 and      /work/SRC/openSUSE:Factory/.emacs-jinx.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "emacs-jinx"

Mon Oct  5 12:55:04 2026 rev:14 rq:1382274 version:2.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/emacs-jinx/emacs-jinx.changes    2026-08-19 
18:00:41.882112799 +0200
+++ /work/SRC/openSUSE:Factory/.emacs-jinx.new.3698736/emacs-jinx.changes       
2026-10-05 12:56:44.032525475 +0200
@@ -1,0 +2,6 @@
+Sat Oct 03 20:34:22 UTC 2026 - Björn Kettunen <[email protected]>
+
+- Update to version 2.11:
+  * New command jinx-occur which lists all misspelled words in a separate 
buffer
+
+-------------------------------------------------------------------

Old:
----
  jinx-2.10.obscpio

New:
----
  jinx-2.11.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ emacs-jinx.spec ++++++
--- /var/tmp/diff_new_pack.Rjq8nD/_old  2026-10-05 12:56:45.304577158 +0200
+++ /var/tmp/diff_new_pack.Rjq8nD/_new  2026-10-05 12:56:45.309577361 +0200
@@ -20,7 +20,7 @@
 %global _name    jinx
 
 Name:           emacs-%{_name}
-Version:        2.10
+Version:        2.11
 Release:        0
 Summary:        Enchanted Spell Checker for Emacs
 License:        GPL-3.0-or-later

++++++ jinx-2.10.obscpio -> jinx-2.11.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jinx-2.10/NEWS.org new/jinx-2.11/NEWS.org
--- old/jinx-2.10/NEWS.org      2026-08-13 11:54:27.000000000 +0200
+++ new/jinx-2.11/NEWS.org      2026-09-26 11:12:01.000000000 +0200
@@ -2,11 +2,15 @@
 #+author: Daniel Mendler
 #+language: en
 
+* Version 2.11 (2026-09-26)
+
+- New command =jinx-occur= which lists all misspelled words in a separate 
buffer.
+
 * Version 2.10 (2026-08-13)
 
 - Let-bind =parse-sexp-lookup-properties= to nil during Jinx tokenization. This
-  avoids inference with the =syntax-table= property attached by some major 
modes
-  like =haskell-mode=.
+  avoids interference with the =syntax-table= property attached by some major
+  modes like =haskell-mode=.
 
 * Version 2.9 (2026-08-01)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jinx-2.10/README.org new/jinx-2.11/README.org
--- old/jinx-2.10/README.org    2026-08-13 11:54:27.000000000 +0200
+++ new/jinx-2.11/README.org    2026-09-26 11:12:01.000000000 +0200
@@ -92,6 +92,7 @@
 - =C-u M-$= or =M-x jinx-correct-all= spell-checks the entire buffer.
 - =C-u C-u M-$= or =M-x jinx-correct-word= forces correction of the word at 
point,
   even if it is not misspelled.
+- =M-x jinx-occur= displays all misspelled words in a separate buffer.
 
 A sample configuration with the popular =use-package= macro is shown here:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jinx-2.10/jinx.el new/jinx-2.11/jinx.el
--- old/jinx-2.10/jinx.el       2026-08-13 11:54:27.000000000 +0200
+++ new/jinx-2.11/jinx.el       2026-09-26 11:12:01.000000000 +0200
@@ -5,7 +5,7 @@
 ;; Author: Daniel Mendler <[email protected]>
 ;; Maintainer: Daniel Mendler <[email protected]>
 ;; Created: 2023
-;; Version: 2.10
+;; Version: 2.11
 ;; Package-Requires: ((emacs "29.1") (compat "31"))
 ;; URL: https://github.com/minad/jinx
 ;; Keywords: convenience, text
@@ -27,25 +27,24 @@
 
 ;;; Commentary:
 
-;; Jinx is a fast just-in-time spell-checker for Emacs.  Jinx
-;; highlights misspelled words in the text of the visible portion of
-;; the buffer.  For efficiency, Jinx highlights misspellings lazily,
-;; recognizes window boundaries and text folding, if any.  For
-;; example, when unfolding or scrolling, only the newly visible part
-;; of the text is checked if it has not been checked before.  Each
-;; misspelling can be corrected from a list of dictionary words
-;; presented as a completion menu.
-
-;; Installing Jinx is straight-forward and configuring should not need
-;; much intervention.  Jinx can be used completely on its own, but can
-;; also safely co-exist with Emacs's built-in spell-checker Ispell.
+;; Jinx is a fast just-in-time spell-checker for Emacs.  Jinx highlights
+;; misspelled words in the text of the visible portion of the buffer.  For
+;; efficiency, Jinx highlights misspelled words lazily, recognizes window
+;; boundaries and text folding, if any.  For example, when unfolding or
+;; scrolling, only the newly visible part of the text is checked if it has
+;; not been checked before.  Each misspelling can be corrected from a list
+;; of dictionary words presented as a completion menu.
+
+;; Installing Jinx is straight-forward and configuring should not need much
+;; intervention.  Jinx can be used completely on its own, but can also
+;; safely co-exist with Emacs's built-in spell-checker Ispell.
 
 ;; Jinx's high performance and low resource usage comes from directly
 ;; calling the API of the Enchant library, see
 ;; https://rrthomas.github.io/enchant/.  Jinx automatically compiles
-;; jinx-mod.c and loads the dynamic module at startup.  By binding
-;; directly to the native Enchant API, Jinx avoids slower
-;; inter-process communication.
+;; jinx-mod.c and loads the dynamic module at startup.  By binding directly
+;; to the native Enchant API, Jinx avoids slower inter-process
+;; communication.
 
 ;; See the manual for further information.
 
@@ -110,10 +109,10 @@
   :type '(alist :key-type symbol :value-type (choice symbol (repeat face))))
 
 (defcustom jinx-camel-modes
-  '(java-mode java-ts-mode js-mode js-ts-mode ruby-mode ruby-ts-mode rust-mode
-    rust-ts-mode haskell-mode kotlin-mode swift-mode csharp-mode csharp-ts-mode
-    objc-mode typescript-ts-mode typescript-mode tsx-ts-mode python-mode
-    python-ts-mode dart-mode go-mode go-ts-mode scala-mode groovy-mode)
+  '( java-mode java-ts-mode js-mode js-ts-mode ruby-mode ruby-ts-mode rust-mode
+     rust-ts-mode haskell-mode kotlin-mode swift-mode csharp-mode 
csharp-ts-mode
+     objc-mode typescript-ts-mode typescript-mode tsx-ts-mode python-mode
+     python-ts-mode dart-mode go-mode go-ts-mode scala-mode groovy-mode)
   "Modes where camelCase or PascalCase words should be accepted.
 Set to t to enable camelCase everywhere."
   :type '(choice (const t) (repeat symbol)))
@@ -282,6 +281,7 @@
      :keys "\\[universal-argument] \\[jinx-correct]"]
     ["Correct word" jinx-correct-word
      :keys "\\[universal-argument] \\[universal-argument] \\[jinx-correct]"]
+    ["Occur" jinx-occur]
     ["Change languages" jinx-languages]
     ["Remove word" jinx-remove-word]
     "----"
@@ -296,8 +296,8 @@
   "List of compile flags passed to the C compiler.")
 
 (defvar jinx--reschedule-hooks
-  '(window-selection-change-functions window-scroll-functions
-    window-state-change-hook post-command-hook)
+  '( window-selection-change-functions window-scroll-functions
+     window-state-change-hook post-command-hook)
   "Hooks which reschedule the spell checking timer, see `jinx--reschedule'.")
 
 (defvar jinx--predicates
@@ -543,19 +543,17 @@
       (push (pop overlays) before))
     (nconc overlays (nreverse before))))
 
-(cl-defun jinx--force-overlays (start end &key visible check)
+(defun jinx--force-overlays (start end &optional visible)
   "Return misspelled word overlays between START and END, enforce checking.
-If VISIBLE is non-nil, only include visible overlays.
-If CHECK is non-nil, always check first."
-  (or (and (not check) (jinx--get-overlays start end visible))
-      (progn
-        (with-delayed-message (1 "Fontifying...")
-          (jinx--in-base-buffer #'jit-lock-fontify-now start end))
-        (with-delayed-message (1 "Checking...")
-          (jinx--check-region start end))
-        (jinx--get-overlays start end visible))
+If VISIBLE is non-nil, only include visible overlays."
+  (with-delayed-message (1 "Fontifying...")
+    (jinx--in-base-buffer #'jit-lock-fontify-now start end))
+  (with-delayed-message (1 "Checking...")
+    (jinx--check-region start end))
+  (or (jinx--get-overlays start end visible)
       (user-error "No misspelled word in %s"
-                  (if visible "visible text" (format "buffer `%s'" 
(buffer-name))))))
+                  (if visible "visible text"
+                    (format "buffer `%s'" (buffer-name))))))
 
 (defun jinx--cleanup ()
   "Cleanup all overlays and trigger fontification."
@@ -845,7 +843,7 @@
       (when-let* ((suggestions (jinx--session-suggestions word)))
         (push ["── Session ──" :active nil] menu)
         (cl-loop for w in suggestions repeat jinx-menu-suggestions do
-          (push `[,w (jinx--correct-replace ,ov ,w)] menu)))
+                 (push `[,w (jinx--correct-replace ,ov ,w)] menu)))
       (let ((submenu (list "Accept and save")))
         (cl-loop for (key . fun) in jinx--save-keys do
                  (cl-loop for (k w a) in (funcall fun 'format key word) do
@@ -885,15 +883,15 @@
   (let ((langs (delete-dups
                 (cl-loop for (l . p) in (jinx--mod-langs) collect
                          (propertize l 'jinx--group (format "Provider %s" 
p))))))
-      (string-join
-       (or (completing-read-multiple
-            (format "Change languages (%s): "
-                    (string-join (split-string jinx-languages) ", "))
-            (completion-table-with-metadata
-             langs `((group-function . ,#'jinx--group)))
-            nil t)
-           (user-error "No languages selected"))
-       " ")))
+    (string-join
+     (or (completing-read-multiple
+          (format "Change languages (%s): "
+                  (string-join (split-string jinx-languages) ", "))
+          (completion-table-with-metadata
+           langs `((group-function . ,#'jinx--group)))
+          nil t)
+         (user-error "No languages selected"))
+     " ")))
 
 (defun jinx--save-local-word (action var word)
   "Add/remove WORD to/from local word list VAR.
@@ -1003,6 +1001,57 @@
   (jinx--cleanup))
 
 ;;;###autoload
+(defun jinx-occur ()
+  "Display all lines containing misspelled words in a separate `occur-mode' 
buffer."
+  (interactive)
+  (let ((buf (get-buffer-create "*jinx-occur*"))
+        (where (buffer-name))
+        overlays lines)
+    (save-excursion
+      (jinx--correct-guard
+       (goto-char (point-min))
+       (setq overlays (jinx--force-overlays (point-min) (point-max)))
+       (dolist (ov overlays)
+         (goto-char (overlay-start ov))
+         (let ((bol (pos-bol))
+               (line (line-number-at-pos))
+               (ov (cons (copy-overlay ov) (copy-marker (overlay-start ov)))))
+           (if (equal (caar lines) line)
+               (push ov (nth 3 (car lines)))
+             (push `( ,line ,(buffer-substring bol (pos-eol)) ,bol (,ov)) 
lines))))))
+    (with-current-buffer buf
+      (with-silent-modifications
+        (erase-buffer)
+        (insert (format (propertize "%d misspelled words in %d lines in %s" 
'face 'underline)
+                        (length overlays) (length lines) where)
+                ?\n)
+        (pcase-dolist (`(,line ,str ,bol ,ovs) (nreverse lines))
+          (let ((start (point)))
+            (insert
+             (format (propertize "%7d:"
+                                 'occur-prefix t
+                                 'front-sticky t
+                                 'rear-nonsticky t
+                                 'read-only t
+                                 'font-lock-face 
list-matching-lines-prefix-face)
+                     line)
+             str ?\n)
+            (put-text-property start (1- (point)) 'mouse-face 'highlight)
+            (add-text-properties start (point)
+                                 `( follow-link t
+                                    occur-target ,(cdar (last ovs))
+                                    occur-match t))
+            (dolist (ov ovs)
+              (let ((beg (+ start 8 (- (overlay-start (car ov)) bol)))
+                    (end (+ start 8 (- (overlay-end (car ov)) bol))))
+                (add-text-properties beg end `(occur-match t occur-target 
,(cdr ov)))
+                (move-overlay (car ov) beg end buf)))))
+        (goto-char (point-min))
+        (occur-mode)
+        (setq next-error-last-buffer buf)
+        (pop-to-buffer buf)))))
+
+;;;###autoload
 (defun jinx-correct-all (&optional only-check)
   "Correct all misspelled words in the buffer.
 With prefix argument ONLY-CHECK, only check the buffer and highlight all
@@ -1010,8 +1059,7 @@
   (interactive "*P")
   (jinx--correct-guard
    (let* ((overlays (jinx--force-overlays (or (use-region-beginning) 
(point-min))
-                                          (or (use-region-end) (point-max))
-                                          :check t))
+                                          (or (use-region-end) (point-max))))
           (count (length overlays))
           (idx 0))
      (if only-check
@@ -1031,7 +1079,7 @@
   (interactive "*")
   (save-excursion
     (jinx--correct-guard
-     (let* ((overlays (jinx--force-overlays (window-start) (window-end) 
:visible t))
+     (let* ((overlays (jinx--force-overlays (window-start) (window-end) t))
             (count (length overlays))
             (idx 0))
        ;; Not using `while-let' is intentional here.
@@ -1055,7 +1103,7 @@
      (while-let ((skip (let ((ov (make-overlay start end)))
                          (unwind-protect
                              (jinx--correct-overlay ov :initial initial)
-                         (delete-overlay ov)))))
+                           (delete-overlay ov)))))
        (forward-to-word skip)
        (when-let* ((bounds (jinx--bounds-of-word)))
          (setf (cons start end) bounds
@@ -1133,7 +1181,8 @@
   (unless (= n 0)
     (if (minibufferp)
         (throw 'jinx--goto n)
-      (let ((ov (jinx--force-overlays (point-min) (point-max))))
+      (let ((ov (or (jinx--get-overlays (point-min) (point-max))
+                    (jinx--force-overlays (point-min) (point-max)))))
         (unless (or (> n 0) (<= (overlay-start (car ov)) (point) (overlay-end 
(car ov))))
           (incf n))
         (goto-char (overlay-end (nth (mod n (length ov)) ov)))
@@ -1178,10 +1227,10 @@
       (add-hook hook #'jinx--reschedule nil t))
     (jit-lock-register #'jinx--mark-pending))
    (t
-    (mapc #'kill-local-variable '(jinx--exclude-regexp jinx--include-faces
-                                  jinx--exclude-faces jinx--camel
-                                  jinx--dicts jinx--syntax-table
-                                  jinx--session-words))
+    (mapc #'kill-local-variable '( jinx--exclude-regexp jinx--include-faces
+                                   jinx--exclude-faces jinx--camel
+                                   jinx--dicts jinx--syntax-table
+                                   jinx--session-words))
     (dolist (hook jinx--reschedule-hooks)
       (remove-hook hook #'jinx--reschedule t))
     (jit-lock-unregister #'jinx--mark-pending)

++++++ jinx.obsinfo ++++++
--- /var/tmp/diff_new_pack.Rjq8nD/_old  2026-10-05 12:56:45.731594952 +0200
+++ /var/tmp/diff_new_pack.Rjq8nD/_new  2026-10-05 12:56:45.749595707 +0200
@@ -1,5 +1,5 @@
 name: jinx
-version: 2.10
-mtime: 1786614867
-commit: f776ca306801f3b4d26a458d5109ea586d52e716
+version: 2.11
+mtime: 1790413921
+commit: bccb08062a3372629015bcd2c197490b7d005f37
 

Reply via email to