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

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

[elpa] externals/org-remark f9c313342c 067/173: chg: separate global-tra


From: ELPA Syncer
Subject: [elpa] externals/org-remark f9c313342c 067/173: chg: separate global-tracking.el
Date: Fri, 28 Jan 2022 16:58:02 -0500 (EST)

branch: externals/org-remark
commit f9c313342ca9ba34e0e2962f10e82f94777859a4
Author: Noboru Ota <me@nobiot.com>
Commit: Noboru Ota <me@nobiot.com>

    chg: separate global-tracking.el
    
    This way, you don't need to load the whole Org machinary to turn on global
    tracking in init.
---
 README.org                        |  8 ++--
 org-marginalia-global-tracking.el | 84 +++++++++++++++++++++++++++++++++++++++
 org-marginalia.el                 | 60 +---------------------------
 3 files changed, 89 insertions(+), 63 deletions(-)

diff --git a/README.org b/README.org
index 0593e51551..a217370415 100644
--- a/README.org
+++ b/README.org
@@ -291,8 +291,8 @@ jit-lock-register
 ** org-marginalia-load
 :PROPERTIES:
 :marginalia-id: 3ed4316a
-:marginalia-source-beg: 14275
-:marginalia-source-end: 14294
+:marginalia-source-beg: 12170
+:marginalia-source-end: 12189
 :END:
 [[file:~/local-repos/org-marginalia/org-marginalia.el][org-marginalia]]
 
@@ -300,8 +300,8 @@ jit-lock-register
 ** set-buffer-modified-p
 :PROPERTIES:
 :marginalia-id: 275b8a06
-:marginalia-source-beg: 14183
-:marginalia-source-end: 14204
+:marginalia-source-beg: 12078
+:marginalia-source-end: 12099
 :END:
 [[file:~/local-repos/org-marginalia/org-marginalia.el][org-marginalia]]
 
diff --git a/org-marginalia-global-tracking.el 
b/org-marginalia-global-tracking.el
new file mode 100644
index 0000000000..517c43849c
--- /dev/null
+++ b/org-marginalia-global-tracking.el
@@ -0,0 +1,84 @@
+;;; Commentary:
+
+;;; Code
+
+(declare-function org-marginalia-mode 'org-marginalia)
+
+(defgroup org-marginalia nil
+  "Write margin notes (marginalia) for any text file in a
+separate Org file"
+  :group 'org
+  :prefix "org-marginalia-"
+  :link '(url-link :tag "Github" "https://github.com/nobiot/org-marginalia";))
+
+(defcustom org-marginalia-notes-file-path "marginalia.org"
+  "Specify the file path for the marginalia.org file.
+The default is \"./marginalia.org\", thus one marginalia file per directory.
+Ensure that it is an Org file."
+  :type 'string
+  :group 'org-marginalia)
+
+(defcustom org-marginalia-tracking-file
+  (locate-user-emacs-file ".org-marginalia-tracking" nil)
+  "File name where the files `org-marginalia' tracks is saved.
+When `org-marginalia-global-tracking-mode' is active, opening a file
+saved in `org-marginalia-tracking-file' automatically loads highlights."
+  :type 'file)
+
+(defvar org-marginalia-tracking-file-loaded nil)
+
+(defvar org-marginalia-files-tracked nil)
+
+;;;###autoload
+(define-minor-mode org-marginalia-global-tracking-mode
+  "Global mode. When enabled, check files saved in
+`org-marginalia-tracking-file' and opening them automatically
+activates `org-marginalia-mode' locally for the file opened."
+  :init-value nil
+  :lighter " marginalia-tracking"
+  :global t
+  (cond
+   (org-marginalia-global-tracking-mode
+    ;; Activate
+    (when (and (not org-marginalia-tracking-file-loaded)
+              (file-exists-p org-marginalia-tracking-file))
+      (org-marginalia-tracking-load))
+    (add-hook 'find-file-hook #'org-marginalia-tracking-auto-on)
+    (add-hook 'kill-emacs-hook #'org-marginalia-tracking-save))
+   (t
+    ;; dactivate
+    (setq org-marginalia-files-tracked nil)
+    (setq org-marginalia-tracking-file-loaded nil)
+    (remove-hook 'find-file-hook #'org-marginalia-tracking-auto-on)
+    (remove-hook 'kill-emacs-hook #'org-marginalia-tracking-save))))
+
+(defun org-marginalia-tracking-auto-on ()
+  "."
+  (when (and org-marginalia-files-tracked
+            (member (abbreviate-file-name (buffer-file-name))
+                    org-marginalia-files-tracked))
+    (unless (featurep 'org-marginalia) (require 'org-marginalia))
+    (org-marginalia-mode +1)))
+
+(defun org-marginalia-tracking-load ()
+  ".
+Each line.  It loads regardless of `org-marginalia-tracking-file';
+if already loaded this function reloads."
+  (with-temp-buffer
+    (condition-case nil
+       (progn
+         (insert-file-contents org-marginalia-tracking-file)
+         (setq org-marginalia-files-tracked
+               (split-string (buffer-string) "\n"))
+          (setq org-marginalia-tracking-file-loaded t)))))
+
+(defun org-marginalia-tracking-save ()
+  "."
+  (interactive)
+  (when org-marginalia-files-tracked
+    (with-temp-file org-marginalia-tracking-file
+      (insert (mapconcat 'identity org-marginalia-files-tracked "\n")))))
+
+(provide 'org-marginalia-global-tracking)
+
+;;; org-marginalia-global-tracking.el ends here
diff --git a/org-marginalia.el b/org-marginalia.el
index ba48ee36a8..5929188793 100644
--- a/org-marginalia.el
+++ b/org-marginalia.el
@@ -169,6 +169,7 @@
 
 (require 'org)
 (require 'org-id)
+(require 'org-marginalia-global-tracking)
 (declare-function org-collect-keywords 'org)
 
 ;;;; Customization
@@ -197,13 +198,6 @@ Ensure that it is an Org file."
   :type 'string
   :group 'org-marginalia)
 
-(defcustom org-marginalia-tracking-file
-  (locate-user-emacs-file ".org-marginalia-tracking" nil)
-  "File name where the files `org-marginalia' tracks is saved.
-When `org-marginalia-global-tracking-mode' is active, opening a file
-saved in `org-marginalia-tracking-file' automatically loads highlights."
-  :type 'file)
-
 ;;;; Variables
 
 (defvar-local org-marginalia-loaded nil)
@@ -220,10 +214,6 @@ On save-buffer each highlight will be persisted in the 
marginalia file
   "Stores the cloned indirect buffer for the margin notes.
 It is meant to exist only one of these in each Emacs session.")
 
-(defvar org-marginalia-tracking-file-loaded nil)
-
-(defvar org-marginalia-files-tracked nil)
-
 ;; Const for the names of properties in Org Mode
 (defconst org-marginalia-prop-id "marginalia-id")
 (defconst org-marginalia-prop-source-file "marginalia-source-file")
@@ -232,54 +222,6 @@ It is meant to exist only one of these in each Emacs 
session.")
 
 ;;;; Commands
 
-;;;###autoload
-(define-minor-mode org-marginalia-global-tracking-mode
-  "Global mode. When enabled, check files saved in
-`org-marginalia-tracking-file' and opening them automatically
-activates `org-marginalia-mode' locally for the file opened."
-  :init-value nil
-  :lighter " marginalia-tracking"
-  :global t
-  (cond
-   (org-marginalia-global-tracking-mode
-    ;; Activate
-    (when (and (not org-marginalia-tracking-file-loaded)
-              (file-exists-p org-marginalia-tracking-file))
-      (org-marginalia-tracking-load))
-    (add-hook 'find-file-hook #'org-marginalia-tracking-auto-on)
-    (add-hook 'kill-emacs-hook #'org-marginalia-tracking-save))
-   (t
-    ;; dactivate
-    (setq org-marginalia-files-tracked nil)
-    (setq org-marginalia-tracking-file-loaded nil)
-    (remove-hook 'find-file-hook #'org-marginalia-tracking-auto-on)
-    (remove-hook 'kill-emacs-hook #'org-marginalia-tracking-save))))
-
-(defun org-marginalia-tracking-auto-on ()
-  (when (and org-marginalia-files-tracked
-            (member (abbreviate-file-name (buffer-file-name))
-                    org-marginalia-files-tracked))
-    (org-marginalia-mode +1)))
-
-(defun org-marginalia-tracking-load ()
-  ".
-Each line. It loads regardless of `org-marginalia-tracking-file';
-if already loaded this function reloads."
-  (with-temp-buffer
-    (condition-case nil
-       (progn
-         (insert-file-contents org-marginalia-tracking-file)
-         (setq org-marginalia-files-tracked
-               (split-string (buffer-string) "\n"))
-          (setq org-marginalia-tracking-file-loaded t)))))
-
-(defun org-marginalia-tracking-save ()
-  "."
-  (interactive)
-  (when org-marginalia-files-tracked
-    (with-temp-file org-marginalia-tracking-file
-      (insert (mapconcat 'identity org-marginalia-files-tracked "\n")))))
-
 ;;;###autoload
 (define-minor-mode org-marginalia-mode
     "Highlight text, write margin notes for any text file in Org Mode.



reply via email to

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