When I execute command `[M-x org-mode]` on an Org buffer which is
already have `org-num-mode` enabled. It will re-generate overlay.

Here is a quick patch:

modified   lisp/org-num.el
@@ -438,17 +438,16 @@ NUMBERING is a list of numbers."
 (define-minor-mode org-num-mode
   "Dynamic numbering of headlines in an Org buffer."
   :lighter " o#"
-  (cond
-   (org-num-mode
+  (if org-num-mode
+      (progn
+       (mapc #'delete-overlay org-num--overlays)
+       (setq org-num--overlays nil)
+       (remove-hook 'after-change-functions #'org-num--verify t))
     (unless (derived-mode-p 'org-mode)
       (user-error "Cannot activate headline numbering outside Org mode"))
     (setq org-num--numbering nil)
     (setq org-num--overlays (nreverse (org-num--number-region nil nil)))
-    (add-hook 'after-change-functions #'org-num--verify nil t))
-   (t
-    (mapc #'delete-overlay org-num--overlays)
-    (setq org-num--overlays nil)
-    (remove-hook 'after-change-functions #'org-num--verify t))))
+    (add-hook 'after-change-functions #'org-num--verify nil t)))

-- 
[ stardiviner ]
       I try to make every word tell the meaning what I want to express.

       Blog: https://stardiviner.github.io/
       IRC(freenode): stardiviner, Matrix: stardiviner
       GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
      

Reply via email to