pkg update and first config fix
org-brain not working, add org-roam
This commit is contained in:
@@ -4,9 +4,9 @@
|
||||
;; org-fragtog Copyright (C) 2020 Benjamin Levy - MIT/X11 License
|
||||
;; org-appear Copyright (C) 2021 Alice Istleyeva - MIT License
|
||||
;; Author: Alice Istleyeva <awth13@gmail.com>
|
||||
;; Version: 0.2.4
|
||||
;; Package-Version: 20211202.604
|
||||
;; Package-Commit: a4d10fc346ba14f487eb7aa95761b9295089ba55
|
||||
;; Version: 0.3.0
|
||||
;; Package-Version: 20220617.2355
|
||||
;; Package-Commit: 60ba267c5da336e75e603f8c7ab3f44e6f4e4dac
|
||||
;; Description: Toggle Org mode element visibility upon entering and leaving
|
||||
;; Homepage: https://github.com/awth13/org-appear
|
||||
;; Package-Requires: ((emacs "25.1") (org "9.3"))
|
||||
@@ -48,6 +48,18 @@
|
||||
"Auto-toggle Org elements."
|
||||
:group 'org)
|
||||
|
||||
(defcustom org-appear-trigger 'always
|
||||
"Method of triggering element toggling.
|
||||
`always' means that elements are toggled every time they are under the cursor.
|
||||
`on-change' means that elements are toggled only when the buffer is modified
|
||||
or when the element under the cursor is clicked with a mouse.
|
||||
`manual' means that toggling starts on call to `org-appear-manual-start'
|
||||
and stops on call to `org-appear-manual-stop'."
|
||||
:type '(choice (const :tag "Always" always)
|
||||
(const :tag "Only on change" on-change)
|
||||
(const :tag "Manual" manual))
|
||||
:group 'org-appear)
|
||||
|
||||
(defcustom org-appear-autoemphasis t
|
||||
"Non-nil enables automatic toggling of emphasised and verbatim markers.
|
||||
Does not have an effect if `org-hide-emphasis-markers' is nil."
|
||||
@@ -68,8 +80,12 @@ Does not have an effect if `org-pretty-entities' is nil."
|
||||
|
||||
(defcustom org-appear-autolinks nil
|
||||
"Non-nil enables automatic toggling of links.
|
||||
Does not have an effect if `org-link-descriptive' is nil."
|
||||
:type 'boolean
|
||||
If set to the symbol `just-brackets', links will be shown with
|
||||
brackets around them without showing the link target. Does not
|
||||
have an effect if `org-link-descriptive' is nil."
|
||||
:type '(choice (const :tag "Ignore links" nil)
|
||||
(const :tag "Toggle full link" t)
|
||||
(const :tag "Toggle brackets" just-brackets))
|
||||
:group 'org-appear)
|
||||
|
||||
(defcustom org-appear-autokeywords nil
|
||||
@@ -78,11 +94,24 @@ Does not have an effect if `org-hidden-keywords' is nil."
|
||||
:type 'boolean
|
||||
:group 'org-appear)
|
||||
|
||||
(defcustom org-appear-inside-latex nil
|
||||
"Also applies toggling inside Latex fragments and environments.
|
||||
Sub- and superscript markers are toggled if `org-appear-autosubmarkers' is
|
||||
non-nil. Entities are toggled if `org-appear-autoentities' is non-nil."
|
||||
:type 'boolean
|
||||
:group 'org-appear)
|
||||
|
||||
(defcustom org-appear-delay 0.0
|
||||
"Seconds of delay before toggling an element."
|
||||
:type 'number
|
||||
:group 'org-appear)
|
||||
|
||||
(defcustom org-appear-manual-linger nil
|
||||
"Whether to hide the element on manual stop.
|
||||
If true, hide upon navigating away."
|
||||
:type 'boolean
|
||||
:group 'org-appear)
|
||||
|
||||
(defvar-local org-appear--timer nil
|
||||
"Current active timer.")
|
||||
|
||||
@@ -97,7 +126,10 @@ Does not have an effect if `org-hidden-keywords' is nil."
|
||||
(org-appear-mode
|
||||
(org-appear--set-elements)
|
||||
(add-hook 'post-command-hook #'org-appear--post-cmd nil t)
|
||||
(add-hook 'pre-command-hook #'org-appear--pre-cmd nil t))
|
||||
(add-hook 'pre-command-hook #'org-appear--pre-cmd nil t)
|
||||
(when (eq org-appear-trigger 'on-change)
|
||||
(add-hook 'mouse-leave-buffer-hook #'org-appear--after-change nil t)
|
||||
(add-hook 'after-change-functions #'org-appear--after-change nil t)))
|
||||
(t
|
||||
;; Clean up current element when disabling the mode
|
||||
(when-let ((current-elem (org-appear--current-elem)))
|
||||
@@ -106,7 +138,10 @@ Does not have an effect if `org-hidden-keywords' is nil."
|
||||
(cancel-timer org-appear--timer)
|
||||
(setq org-appear--timer nil)))
|
||||
(remove-hook 'post-command-hook #'org-appear--post-cmd t)
|
||||
(remove-hook 'pre-command-hook #'org-appear--pre-cmd t))))
|
||||
(remove-hook 'pre-command-hook #'org-appear--pre-cmd t)
|
||||
(when (eq org-appear-trigger 'on-change)
|
||||
(remove-hook 'mouse-leave-buffer-hook #'org-appear--after-change t)
|
||||
(remove-hook 'after-change-functions #'org-appear--after-change t)))))
|
||||
|
||||
(defvar org-appear-elements nil
|
||||
"List of Org elements to toggle.")
|
||||
@@ -115,6 +150,12 @@ Does not have an effect if `org-hidden-keywords' is nil."
|
||||
"Previous element that surrounded the cursor.
|
||||
nil if the cursor was not on an element.")
|
||||
|
||||
(defvar-local org-appear--do-buffer nil
|
||||
"Non-nil when `org-appear-mode' is notified to start toggling.")
|
||||
|
||||
(defvar-local org-appear--elem-toggled nil
|
||||
"Non-nil if the last encountered element has been toggled.")
|
||||
|
||||
(defun org-appear--set-elements ()
|
||||
"Add elements to toggle to `org-appear-elements'."
|
||||
(let ((emphasis-elements '(bold
|
||||
@@ -127,7 +168,8 @@ nil if the cursor was not on an element.")
|
||||
superscript))
|
||||
(entity-elements '(entity))
|
||||
(link-elements '(link))
|
||||
(keyword-elements '(keyword)))
|
||||
(keyword-elements '(keyword))
|
||||
(latex-elements '(latex-fragment latex-environment)))
|
||||
|
||||
;; HACK: is there a better way to do this?
|
||||
(setq-local org-appear--prev-elem nil)
|
||||
@@ -141,7 +183,9 @@ nil if the cursor was not on an element.")
|
||||
(when (and org-link-descriptive org-appear-autolinks)
|
||||
(setq org-appear-elements (append org-appear-elements link-elements)))
|
||||
(when (and org-hidden-keywords org-appear-autokeywords)
|
||||
(setq org-appear-elements (append org-appear-elements keyword-elements)))))
|
||||
(setq org-appear-elements (append org-appear-elements keyword-elements)))
|
||||
(when org-appear-inside-latex
|
||||
(setq org-appear-elements (append org-appear-elements latex-elements)))))
|
||||
|
||||
(defun org-appear--post-cmd ()
|
||||
"This function is executed by `post-command-hook' in `org-appear-mode'.
|
||||
@@ -153,8 +197,12 @@ It handles toggling elements depending on whether the cursor entered or exited t
|
||||
|
||||
;; After leaving an element
|
||||
(when (and prev-elem
|
||||
org-appear--elem-toggled
|
||||
(not (equal prev-elem-start current-elem-start)))
|
||||
|
||||
;; Forget element
|
||||
(setq org-appear--elem-toggled nil)
|
||||
|
||||
;; If timer for prev-elem fired and was expired
|
||||
(if (not org-appear--timer)
|
||||
(save-excursion
|
||||
@@ -166,10 +214,16 @@ It handles toggling elements depending on whether the cursor entered or exited t
|
||||
(setq org-appear--timer nil)))
|
||||
|
||||
;; Inside an element
|
||||
(when current-elem
|
||||
(when (and current-elem (or (eq org-appear-trigger 'always)
|
||||
org-appear--do-buffer
|
||||
org-appear--elem-toggled))
|
||||
|
||||
;; Mark element as toggled to continue toggling and ignore buffer state
|
||||
(setq org-appear--elem-toggled t)
|
||||
|
||||
;; New element, delay first unhiding
|
||||
(when (and (> org-appear-delay 0)
|
||||
(when (and (eq org-appear-trigger 'always)
|
||||
(> org-appear-delay 0)
|
||||
(not (eq prev-elem-start current-elem-start)))
|
||||
(setq org-appear--timer (run-with-idle-timer org-appear-delay
|
||||
nil
|
||||
@@ -181,8 +235,26 @@ It handles toggling elements depending on whether the cursor entered or exited t
|
||||
(when (not org-appear--timer)
|
||||
(org-appear--show-with-lock current-elem)))
|
||||
|
||||
;; Remember current element as the last visited element
|
||||
(setq org-appear--prev-elem current-elem)))
|
||||
(setq org-appear--prev-elem current-elem)
|
||||
(when (not (eq org-appear-trigger 'manual))
|
||||
(setq org-appear--do-buffer nil))))
|
||||
|
||||
(defun org-appear--after-change (&rest _args)
|
||||
"This function is executed by `after-change-functions' in `org-appear-mode'.
|
||||
It signals that elements in the current buffer must be toggled."
|
||||
(setq org-appear--do-buffer 't))
|
||||
|
||||
(defun org-appear-manual-start ()
|
||||
"Signal that elements in the current buffer must be toggled."
|
||||
(setq org-appear--do-buffer 't))
|
||||
|
||||
(defun org-appear-manual-stop ()
|
||||
"Signal that elements in the current buffer must no longer be toggled."
|
||||
(when (not org-appear-manual-linger)
|
||||
(when-let ((current-elem (org-appear--current-elem)))
|
||||
(org-appear--hide-invisible current-elem))
|
||||
(setq org-appear--elem-toggled nil))
|
||||
(setq org-appear--do-buffer nil))
|
||||
|
||||
(defun org-appear--pre-cmd ()
|
||||
"This function is executed by `pre-command-hook' in `org-appear-mode'.
|
||||
@@ -240,6 +312,8 @@ Return nil if element cannot be parsed."
|
||||
'link)
|
||||
((eq elem-type 'keyword)
|
||||
'keyword)
|
||||
((memq elem-type '(latex-fragment latex-environment))
|
||||
'latex-fragment)
|
||||
(t nil)))
|
||||
(elem-start (org-element-property :begin elem))
|
||||
(elem-end (org-element-property :end elem))
|
||||
@@ -271,11 +345,28 @@ Return nil if element cannot be parsed."
|
||||
(end (plist-get elem-at-point :end))
|
||||
(visible-start (plist-get elem-at-point :visible-start))
|
||||
(visible-end (plist-get elem-at-point :visible-end)))
|
||||
(when (and (eq org-appear-autolinks 'just-brackets)
|
||||
(eq elem-type 'link))
|
||||
(setq start (1- visible-start))
|
||||
(setq end (1+ visible-end)))
|
||||
(with-silent-modifications
|
||||
(cond ((eq elem-type 'entity)
|
||||
(decompose-region start end))
|
||||
((memq elem-type '(latex-fragment latex-environment))
|
||||
(when org-appear-autosubmarkers
|
||||
(remove-text-properties start end '(invisible)))
|
||||
(when org-appear-autoentities
|
||||
(decompose-region start end)))
|
||||
((eq elem-type 'keyword)
|
||||
(remove-text-properties start end '(invisible org-link)))
|
||||
((and (featurep 'org-fold)
|
||||
(eq elem-type 'link))
|
||||
(remove-text-properties start
|
||||
visible-start
|
||||
(list (org-fold-core--property-symbol-get-create 'org-link) nil))
|
||||
(remove-text-properties visible-end
|
||||
end
|
||||
(list (org-fold-core--property-symbol-get-create 'org-link) nil)))
|
||||
(t
|
||||
(remove-text-properties start visible-start '(invisible org-link))
|
||||
(remove-text-properties visible-end end '(invisible org-link)))))))
|
||||
@@ -305,15 +396,30 @@ When RENEW is non-nil, obtain element at point instead."
|
||||
(visible-start (plist-get elem-at-point :visible-start))
|
||||
(visible-end (plist-get elem-at-point :visible-end)))
|
||||
(when elem-at-point
|
||||
(when (and (eq org-appear-autolinks 'just-brackets)
|
||||
(eq elem-type 'link))
|
||||
(setq start (1- visible-start))
|
||||
(setq end (1+ visible-end)))
|
||||
(with-silent-modifications
|
||||
(cond ((eq elem-type 'entity)
|
||||
(compose-region start end (org-element-property :utf-8 elem)))
|
||||
((eq elem-type 'keyword)
|
||||
(compose-region start end (org-element-property :utf-8 elem))
|
||||
(font-lock-flush start end))
|
||||
((memq elem-type '(keyword latex-fragment latex-environment))
|
||||
(font-lock-flush start end))
|
||||
((and (featurep 'org-fold)
|
||||
(eq elem-type 'link))
|
||||
(put-text-property start
|
||||
visible-start
|
||||
(org-fold-core--property-symbol-get-create 'org-link)
|
||||
'org-link)
|
||||
(put-text-property visible-end
|
||||
end
|
||||
(org-fold-core--property-symbol-get-create 'org-link)
|
||||
'org-link))
|
||||
(t
|
||||
(put-text-property start visible-start 'invisible 'org-link)
|
||||
(put-text-property visible-end end 'invisible 'org-link))))
|
||||
;; (font-lock-flush start end)
|
||||
(put-text-property visible-end end 'invisible 'org-link)
|
||||
(font-lock-flush start end))))
|
||||
;; Call `font-lock-ensure' after flushing to prevent `jit-lock-mode'
|
||||
;; from refontifying the next element entered
|
||||
(font-lock-ensure start end))))
|
||||
|
||||
Reference in New Issue
Block a user