pkg update and first config fix

org-brain not working, add org-roam
This commit is contained in:
2022-12-19 23:02:34 +01:00
parent 02b3e07185
commit 82f05baffe
885 changed files with 356098 additions and 36993 deletions

View File

@@ -1,10 +1,10 @@
;;; org-compat.el --- Compatibility Code for Older Emacsen -*- lexical-binding: t; -*-
;; Copyright (C) 2004-2021 Free Software Foundation, Inc.
;; Copyright (C) 2004-2022 Free Software Foundation, Inc.
;; Author: Carsten Dominik <carsten.dominik@gmail.com>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: https://orgmode.org
;; URL: https://orgmode.org
;;
;; This file is part of GNU Emacs.
;;
@@ -29,9 +29,17 @@
;;; Code:
(require 'cl-lib)
(require 'seq)
(require 'org-macs)
(eval-when-compile (require 'subr-x)) ; Emacs < 28
;; We rely on org-compat when generating Org version. Checking Org
;; version here will interfere with Org build process.
;; (org-assert-version)
(declare-function org-agenda-diary-entry "org-agenda")
(declare-function org-agenda-maybe-redo "org-agenda" ())
(declare-function org-agenda-set-restriction-lock "org-agenda" (&optional type))
@@ -39,8 +47,10 @@
(declare-function org-calendar-goto-agenda "org-agenda" ())
(declare-function org-align-tags "org" (&optional all))
(declare-function org-at-heading-p "org" (&optional ignored))
(declare-function org-at-table.el-p "org" ())
(declare-function org-element-at-point "org-element" ())
(declare-function org-at-table.el-p "org-table" ())
(declare-function org-back-to-heading "org" (&optional invisible-ok))
(declare-function org-element-at-point "org-element" (&optional pom cached-only))
(declare-function org-element-at-point-no-context "org-element" (&optional pom))
(declare-function org-element-context "org-element" (&optional element))
(declare-function org-element-lineage "org-element" (blob &optional types with-self))
(declare-function org-element-type "org-element" (element))
@@ -48,18 +58,29 @@
(declare-function org-end-of-subtree "org" (&optional invisible-ok to-heading))
(declare-function org-get-heading "org" (&optional no-tags no-todo no-priority no-comment))
(declare-function org-get-tags "org" (&optional pos local))
(declare-function org-hide-block-toggle "org" (&optional force no-error element))
(declare-function org-fold-hide-block-toggle "org-fold" (&optional force no-error element))
(declare-function org-link-display-format "ol" (s))
(declare-function org-link-set-parameters "ol" (type &rest rest))
(declare-function org-log-into-drawer "org" ())
(declare-function org-make-tag-string "org" (tags))
(declare-function org-next-visible-heading "org" (arg))
(declare-function org-reduced-level "org" (l))
(declare-function org-return "org" (&optional indent arg interactive))
(declare-function org-show-context "org" (&optional key))
(declare-function org-fold-show-context "org-fold" (&optional key))
(declare-function org-table-end "org-table" (&optional table-type))
(declare-function outline-next-heading "outline" ())
(declare-function speedbar-line-directory "speedbar" (&optional depth))
(declare-function table--at-cell-p "table" (position &optional object at-column))
(declare-function org-fold-folded-p "org-fold" (&optional pos spec-or-alias))
(declare-function org-fold-hide-sublevels "org-fold" (levels))
(declare-function org-fold-hide-subtree "org-fold" ())
(declare-function org-fold-region "org-fold" (from to flag &optional spec))
(declare-function org-fold-show-all "org-fold" (&optional types))
(declare-function org-fold-show-children "org-fold" (&optional level))
(declare-function org-fold-show-entry "org-fold" (&optional hide-drawers))
;; `org-string-equal-ignore-case' is in _this_ file but isn't at the
;; top-level.
(declare-function org-string-equal-ignore-case "org-compat" (string1 string2))
(defvar calendar-mode-map)
(defvar org-complex-heading-regexp)
@@ -70,10 +91,69 @@
(defvar org-table-dataline-regexp)
(defvar org-table-tab-recognizes-table.el)
(defvar org-table1-hline-regexp)
(defvar org-fold-core-style)
;;; Emacs < 29 compatibility
(defvar org-file-has-changed-p--hash-table (make-hash-table :test #'equal)
"Internal variable used by `org-file-has-changed-p'.")
(if (fboundp 'file-has-changed-p)
(defalias 'org-file-has-changed-p #'file-has-changed-p)
(defun org-file-has-changed-p (file &optional tag)
"Return non-nil if FILE has changed.
The size and modification time of FILE are compared to the size
and modification time of the same FILE during a previous
invocation of `org-file-has-changed-p'. Thus, the first invocation
of `org-file-has-changed-p' always returns non-nil when FILE exists.
The optional argument TAG, which must be a symbol, can be used to
limit the comparison to invocations with identical tags; it can be
the symbol of the calling function, for example."
(let* ((file (directory-file-name (expand-file-name file)))
(remote-file-name-inhibit-cache t)
(fileattr (file-attributes file 'integer))
(attr (and fileattr
(cons (file-attribute-size fileattr)
(file-attribute-modification-time fileattr))))
(sym (concat (symbol-name tag) "@" file))
(cachedattr (gethash sym org-file-has-changed-p--hash-table)))
(when (not (equal attr cachedattr))
(puthash sym attr org-file-has-changed-p--hash-table)))))
(if (fboundp 'string-equal-ignore-case)
(defalias 'org-string-equal-ignore-case #'string-equal-ignore-case)
;; From Emacs subr.el.
(defun org-string-equal-ignore-case (string1 string2)
"Like `string-equal', but case-insensitive.
Upper-case and lower-case letters are treated as equal.
Unibyte strings are converted to multibyte for comparison."
(eq t (compare-strings string1 0 nil string2 0 nil t))))
;;; Emacs < 28.1 compatibility
(if (fboundp 'file-name-concat)
(defalias 'org-file-name-concat #'file-name-concat)
(defun org-file-name-concat (directory &rest components)
"Append COMPONENTS to DIRECTORY and return the resulting string.
Elements in COMPONENTS must be a string or nil.
DIRECTORY or the non-final elements in COMPONENTS may or may not end
with a slash -- if they don't end with a slash, a slash will be
inserted before contatenating."
(save-match-data
(mapconcat
#'identity
(delq nil
(mapcar
(lambda (str)
(when (and str (not (seq-empty-p str))
(string-match "\\(.+\\)/?" str))
(match-string 1 str)))
(cons directory components)))
"/"))))
(if (fboundp 'directory-empty-p)
(defalias 'org-directory-empty-p #'directory-empty-p)
(defun org-directory-empty-p (dir)
@@ -81,9 +161,52 @@
(and (file-directory-p dir)
(null (directory-files dir nil directory-files-no-dot-files-regexp t)))))
(if (fboundp 'string-clean-whitespace)
(defalias 'org-string-clean-whitespace #'string-clean-whitespace)
;; From Emacs subr-x.el.
(defun org-string-clean-whitespace (string)
"Clean up whitespace in STRING.
All sequences of whitespaces in STRING are collapsed into a
single space character, and leading/trailing whitespace is
removed."
(let ((blank "[[:blank:]\r\n]+"))
(string-trim (replace-regexp-in-string blank " " string t t)
blank blank))))
(if (fboundp 'format-prompt)
(defalias 'org-format-prompt #'format-prompt)
;; From Emacs minibuffer.el, inlining
;; `minibuffer-default-prompt-format' value and replacing `length<'
;; (both new in Emacs 28.1).
(defun org-format-prompt (prompt default &rest format-args)
"Compatibility substitute for `format-prompt'."
(concat
(if (null format-args)
prompt
(apply #'format prompt format-args))
(and default
(or (not (stringp default))
(> (length default) 0))
(format " (default %s)"
(if (consp default)
(car default)
default)))
": ")))
;;; Emacs < 27.1 compatibility
(unless (fboundp 'combine-change-calls)
;; A stub when `combine-change-calls' was not yet there.
(defmacro combine-change-calls (_beg _end &rest body)
(declare (debug (form form def-body)) (indent 2))
`(progn ,@body)))
(if (version< emacs-version "27.1")
(defsubst org-replace-buffer-contents (source &optional _max-secs _max-costs)
(replace-buffer-contents source))
(defalias 'org-replace-buffer-contents #'replace-buffer-contents))
(unless (fboundp 'proper-list-p)
;; `proper-list-p' was added in Emacs 27.1. The function below is
;; taken from Emacs subr.el 200195e824b^.
@@ -155,6 +278,16 @@ extension beyond end of line was not controllable."
(define-obsolete-function-alias 'org-babel-edit-distance 'org-string-distance
"9.5")
(unless (fboundp 'with-connection-local-variables)
;; Added in Emacs 27: commit:21f54feee8, 2019-03-09.
;; Redefining it using the old function `with-connection-local-profiles'.
(defmacro with-connection-local-variables (&rest body)
"Apply connection-local variables according to `default-directory'.
Execute BODY, and unwind connection-local variables."
(declare (debug t))
`(with-connection-local-profiles (connection-local-get-profiles nil)
,@body)))
;;; Emacs < 26.1 compatibility
@@ -170,8 +303,7 @@ extension beyond end of line was not controllable."
(defsubst file-attribute-modification-time (attributes)
"The modification time in ATTRIBUTES returned by `file-attributes'.
This is the time of the last change to the file's contents, and
is a list of integers (HIGH LOW USEC PSEC) in the same style
as (current-time)."
is a Lisp timestamp in the same style as `current-time'."
(nth 5 attributes)))
(unless (fboundp 'file-attribute-size)
@@ -180,70 +312,6 @@ as (current-time)."
This is a floating point number if the size is too large for an integer."
(nth 7 attributes)))
;;; Emacs < 25.1 compatibility
(when (< emacs-major-version 25)
(defalias 'outline-hide-entry 'hide-entry)
(defalias 'outline-hide-sublevels 'hide-sublevels)
(defalias 'outline-hide-subtree 'hide-subtree)
(defalias 'outline-show-branches 'show-branches)
(defalias 'outline-show-children 'show-children)
(defalias 'outline-show-entry 'show-entry)
(defalias 'outline-show-subtree 'show-subtree)
(defalias 'xref-find-definitions 'find-tag)
(defalias 'format-message 'format)
(defalias 'gui-get-selection 'x-get-selection))
(unless (fboundp 'directory-name-p)
(defun directory-name-p (name)
"Return non-nil if NAME ends with a directory separator character."
(let ((len (length name))
(lastc ?.))
(if (> len 0)
(setq lastc (aref name (1- len))))
(or (= lastc ?/)
(and (memq system-type '(windows-nt ms-dos))
(= lastc ?\\))))))
;; `string-collate-lessp' is new in Emacs 25.
(if (fboundp 'string-collate-lessp)
(defalias 'org-string-collate-lessp
'string-collate-lessp)
(defun org-string-collate-lessp (s1 s2 &rest _)
"Return non-nil if STRING1 is less than STRING2 in lexicographic order.
Case is significant."
(string< s1 s2)))
;; The time- functions below translate nil to 'current-time' and
;; accept an integer as of Emacs 25. 'decode-time' and
;; 'format-time-string' accept nil on Emacs 24 but don't accept an
;; integer until Emacs 25.
(if (< emacs-major-version 25)
(let ((convert
(lambda (time)
(cond ((not time) (current-time))
((numberp time) (seconds-to-time time))
(t time)))))
(defun org-decode-time (&optional time)
(decode-time (funcall convert time)))
(defun org-format-time-string (format-string &optional time universal)
(format-time-string format-string (funcall convert time) universal))
(defun org-time-add (a b)
(time-add (funcall convert a) (funcall convert b)))
(defun org-time-subtract (a b)
(time-subtract (funcall convert a) (funcall convert b)))
(defun org-time-since (time)
(time-since (funcall convert time)))
(defun org-time-less-p (t1 t2)
(time-less-p (funcall convert t1) (funcall convert t2))))
(defalias 'org-decode-time 'decode-time)
(defalias 'org-format-time-string 'format-time-string)
(defalias 'org-time-add 'time-add)
(defalias 'org-time-subtract 'time-subtract)
(defalias 'org-time-since 'time-since)
(defalias 'org-time-less-p 'time-less-p))
;;; Obsolete aliases (remove them after the next major release).
@@ -265,6 +333,11 @@ Case is significant."
(define-obsolete-function-alias 'org-select-frame-set-input-focus 'select-frame-set-input-focus "9.0")
(define-obsolete-function-alias 'org-file-remote-p 'file-remote-p "9.2")
(define-obsolete-function-alias 'org-show-context 'org-fold-show-context "9.6")
(define-obsolete-function-alias 'org-show-entry 'org-fold-show-entry "9.6")
(define-obsolete-function-alias 'org-show-children 'org-fold-show-children "9.6")
(defmacro org-re (s)
"Replace posix classes in regular expression S."
(declare (debug (form))
@@ -289,6 +362,14 @@ Counting starts at 1."
"use cl-subseq (note the 0-based counting)."
"9.0")
;;;; Functions available since Emacs 25.1
(define-obsolete-function-alias 'org-string-collate-lessp 'string-collate-lessp "9.6")
(define-obsolete-function-alias 'org-decode-time 'decode-time "9.6")
(define-obsolete-function-alias 'org-format-time-string 'format-time-string "9.6")
(define-obsolete-function-alias 'org-time-add 'time-add "9.6")
(define-obsolete-function-alias 'org-time-subtract 'time-subtract "9.6")
(define-obsolete-function-alias 'org-time-since 'time-since "9.6")
(define-obsolete-function-alias 'org-time-less-p 'time-less-p "9.6")
;;;; Functions available since Emacs 24.3
(define-obsolete-function-alias 'org-buffer-narrowed-p 'buffer-narrowed-p "9.0")
@@ -303,12 +384,20 @@ Counting starts at 1."
(define-obsolete-function-alias 'org-string-match-p 'string-match-p "9.0")
;;;; Functions and variables from previous releases now obsolete.
(define-obsolete-function-alias 'org-timestamp-format
'org-format-timestamp "Org 9.6")
(define-obsolete-variable-alias 'org-export-before-processing-hook
'org-export-before-processing-functions "Org 9.6")
(define-obsolete-variable-alias 'org-export-before-parsing-hook
'org-export-before-parsing-functions "Org 9.6")
(define-obsolete-function-alias 'org-element-remove-indentation
'org-remove-indentation "9.0")
(define-obsolete-variable-alias 'org-latex-create-formula-image-program
'org-preview-latex-default-process "9.0")
(define-obsolete-variable-alias 'org-latex-preview-ltxpng-directory
'org-preview-latex-image-directory "9.0")
(define-obsolete-variable-alias 'org-latex-listings
'org-latex-src-block-backend "9.6")
(define-obsolete-function-alias 'org-table-p 'org-at-table-p "9.0")
(define-obsolete-function-alias 'org-on-heading-p 'org-at-heading-p "9.0")
(define-obsolete-function-alias 'org-at-regexp-p 'org-in-regexp "8.3")
@@ -366,6 +455,80 @@ Counting starts at 1."
(define-obsolete-function-alias 'org-remove-latex-fragment-image-overlays
'org-clear-latex-preview "9.3")
(define-obsolete-function-alias 'org-hide-archived-subtrees
'org-fold-hide-archived-subtrees "9.6")
(define-obsolete-function-alias 'org-flag-region
'org-fold-region "9.6")
(define-obsolete-function-alias 'org-flag-subtree
'org-fold-subtree "9.6")
(define-obsolete-function-alias 'org-hide-entry
'org-fold-hide-entry "9.6")
(define-obsolete-function-alias 'org-show-subtree
'org-fold-show-subtree "9.6")
(define-obsolete-function-alias 'org--hide-wrapper-toggle
'org-fold--hide-wrapper-toggle "9.6")
(define-obsolete-function-alias 'org-hide-block-toggle
'org-fold-hide-block-toggle "9.6")
(define-obsolete-function-alias 'org-hide-drawer-toggle
'org-fold-hide-drawer-toggle "9.6")
(define-obsolete-function-alias 'org--hide-drawers
'org-fold--hide-drawers "9.6")
(define-obsolete-function-alias 'org-hide-block-all
'org-fold-hide-block-all "9.6")
(define-obsolete-function-alias 'org-hide-drawer-all
'org-fold-hide-drawer-all "9.6")
(define-obsolete-function-alias 'org-show-all
'org-fold-show-all "9.6")
(define-obsolete-function-alias 'org-set-startup-visibility
'org-cycle-set-startup-visibility "9.6")
(define-obsolete-function-alias 'org-show-set-visibility
'org-fold-show-set-visibility "9.6")
(define-obsolete-function-alias 'org-check-before-invisible-edit
'org-fold-check-before-invisible-edit "9.6")
(define-obsolete-function-alias 'org-flag-above-first-heading
'org-fold-flag-above-first-heading "9.6")
(define-obsolete-function-alias 'org-show-branches-buffer
'org-fold-show-branches-buffer "9.6")
(define-obsolete-function-alias 'org-show-siblings
'org-fold-show-siblings "9.6")
(define-obsolete-function-alias 'org-show-hidden-entry
'org-fold-show-hidden-entry "9.6")
(define-obsolete-function-alias 'org-flag-heading
'org-fold-heading "9.6")
(define-obsolete-function-alias 'org-set-startup-visibility
'org-cycle-set-startup-visibility "9.6")
(define-obsolete-function-alias 'org-set-visibility-according-to-property
'org-cycle-set-visibility-according-to-property "9.6")
(define-obsolete-variable-alias 'org-scroll-position-to-restore
'org-cycle-scroll-position-to-restore "9.6")
(define-obsolete-function-alias 'org-optimize-window-after-visibility-change
'org-cycle-optimize-window-after-visibility-change "9.6")
(define-obsolete-function-alias 'org-force-cycle-archived
'org-cycle-force-archived "9.6")
(define-obsolete-variable-alias 'org-attach-directory
'org-attach-id-dir "9.3")
(make-obsolete 'org-attach-store-link "No longer used" "9.4")
@@ -373,6 +536,17 @@ Counting starts at 1."
(define-obsolete-function-alias 'org-file-url-p 'org-url-p "9.5")
(define-obsolete-variable-alias 'org-show-context-detail
'org-fold-show-context-detail "9.6")
(define-obsolete-variable-alias 'org-catch-invisible-edits
'org-fold-catch-invisible-edits "9.6")
(define-obsolete-variable-alias 'org-reveal-start-hook
'org-fold-reveal-start-hook "9.6")
(define-obsolete-function-alias 'org-file-url-p 'org-url-p "9.6")
(define-obsolete-variable-alias 'org-plantuml-executable-args 'org-plantuml-args
"Org 9.6")
(defun org-in-fixed-width-region-p ()
"Non-nil if point in a fixed-width region."
(save-match-data
@@ -381,6 +555,19 @@ Counting starts at 1."
"use `org-element' library"
"9.0")
;; FIXME: Unused; obsoleted; to be removed.
(defun org-let (list &rest body) ;FIXME: So many kittens are suffering here.
(declare (indent 1) (obsolete cl-progv "2021"))
(eval (cons 'let (cons list body))))
;; FIXME: Unused; obsoleted; to be removed.
(defun org-let2 (list1 list2 &rest body) ;FIXME: Where did our karma go?
(declare (indent 2) (obsolete cl-progv "2021"))
(eval (cons 'let (cons list1 (list (cons 'let (cons list2 body)))))))
(make-obsolete 'org-let "to be removed" "9.6")
(make-obsolete 'org-let2 "to be removed" "9.6")
(defun org-compatible-face (inherits specs)
"Make a compatible face specification.
If INHERITS is an existing face and if the Emacs version supports
@@ -649,7 +836,7 @@ use of this function is for the stuck project list."
(defun org-show-block-all ()
"Unfold all blocks in the current buffer."
(interactive)
(remove-overlays nil nil 'invisible 'org-hide-block))
(org-fold-show-all '(blocks)))
(make-obsolete 'org-show-block-all
"use `org-show-all' instead."
@@ -692,7 +879,7 @@ When optional argument ELEMENT is a parsed drawer, as returned by
When buffer positions BEG and END are provided, hide or show that
region as a drawer without further ado."
(declare (obsolete "use `org-hide-drawer-toggle' instead." "9.4"))
(if (and beg end) (org-flag-region beg end flag 'outline)
(if (and beg end) (org-fold-region beg end flag (if (eq org-fold-core-style 'text-properties) 'drawer 'outline))
(let ((drawer
(or element
(and (save-excursion
@@ -701,12 +888,12 @@ region as a drawer without further ado."
(org-element-at-point)))))
(when (memq (org-element-type drawer) '(drawer property-drawer))
(let ((post (org-element-property :post-affiliated drawer)))
(org-flag-region
(org-fold-region
(save-excursion (goto-char post) (line-end-position))
(save-excursion (goto-char (org-element-property :end drawer))
(skip-chars-backward " \t\n")
(line-end-position))
flag 'outline)
flag (if (eq org-fold-core-style 'text-properties) 'drawer 'outline))
;; When the drawer is hidden away, make sure point lies in
;; a visible part of the buffer.
(when (invisible-p (max (1- (point)) (point-min)))
@@ -718,7 +905,7 @@ Unlike to `org-hide-block-toggle', this function does not throw
an error. Return a non-nil value when toggling is successful."
(declare (obsolete "use `org-hide-block-toggle' instead." "9.4"))
(interactive)
(org-hide-block-toggle nil t))
(org-fold-hide-block-toggle nil t))
(defun org-hide-block-toggle-all ()
"Toggle the visibility of all blocks in the current buffer."
@@ -734,7 +921,7 @@ an error. Return a non-nil value when toggling is successful."
(save-excursion
(save-match-data
(goto-char (match-beginning 0))
(org-hide-block-toggle)))))))
(org-fold-hide-block-toggle)))))))
(defun org-return-indent ()
"Goto next table row or insert a newline and indent.
@@ -774,6 +961,159 @@ context. See the individual commands for more information."
(define-obsolete-function-alias 'org-get-last-sibling 'org-get-previous-sibling "9.4")
(define-obsolete-function-alias 'org-publish-cache-ctime-of-src
'org-publish-cache-mtime-of-src "9.6")
(define-obsolete-function-alias 'org-truely-invisible-p
'org-truly-invisible-p "9.6"
"Compatibility alias for legacy misspelling of `org-truly-invisible-p'.")
(defconst org-latex-babel-language-alist
'(("af" . "afrikaans")
("bg" . "bulgarian")
("ca" . "catalan")
("cs" . "czech")
("cy" . "welsh")
("da" . "danish")
("de" . "germanb")
("de-at" . "naustrian")
("de-de" . "ngerman")
("el" . "greek")
("en" . "english")
("en-au" . "australian")
("en-ca" . "canadian")
("en-gb" . "british")
("en-ie" . "irish")
("en-nz" . "newzealand")
("en-us" . "american")
("es" . "spanish")
("et" . "estonian")
("eu" . "basque")
("fi" . "finnish")
("fr" . "french")
("fr-ca" . "canadien")
("gl" . "galician")
("hr" . "croatian")
("hu" . "hungarian")
("id" . "indonesian")
("is" . "icelandic")
("it" . "italian")
("la" . "latin")
("ms" . "malay")
("nl" . "dutch")
("nb" . "norsk")
("nn" . "nynorsk")
("no" . "norsk")
("pl" . "polish")
("pt" . "portuguese")
("pt-br" . "brazilian")
("ro" . "romanian")
("ru" . "russian")
("sa" . "sanskrit")
("sb" . "uppersorbian")
("sk" . "slovak")
("sl" . "slovene")
("sq" . "albanian")
("sr" . "serbian")
("sv" . "swedish")
("ta" . "tamil")
("tr" . "turkish")
("uk" . "ukrainian"))
"Alist between language code and corresponding Babel option.")
(defconst org-latex-polyglossia-language-alist
'(("am" "amharic")
("ar" "arabic")
("ast" "asturian")
("bg" "bulgarian")
("bn" "bengali")
("bo" "tibetan")
("br" "breton")
("ca" "catalan")
("cop" "coptic")
("cs" "czech")
("cy" "welsh")
("da" "danish")
("de" "german" "german")
("de-at" "german" "austrian")
("de-de" "german" "german")
("dsb" "lsorbian")
("dv" "divehi")
("el" "greek")
("en" "english" "usmax")
("en-au" "english" "australian")
("en-gb" "english" "uk")
("en-nz" "english" "newzealand")
("en-us" "english" "usmax")
("eo" "esperanto")
("es" "spanish")
("et" "estonian")
("eu" "basque")
("fa" "farsi")
("fi" "finnish")
("fr" "french")
("fu" "friulan")
("ga" "irish")
("gd" "scottish")
("gl" "galician")
("he" "hebrew")
("hi" "hindi")
("hr" "croatian")
("hsb" "usorbian")
("hu" "magyar")
("hy" "armenian")
("ia" "interlingua")
("id" "bahasai")
("is" "icelandic")
("it" "italian")
("kn" "kannada")
("la" "latin" "modern")
("la-classic" "latin" "classic")
("la-medieval" "latin" "medieval")
("la-modern" "latin" "modern")
("lo" "lao")
("lt" "lithuanian")
("lv" "latvian")
("ml" "malayalam")
("mr" "maranthi")
("nb" "norsk")
("nko" "nko")
("nl" "dutch")
("nn" "nynorsk")
("no" "norsk")
("oc" "occitan")
("pl" "polish")
("pms" "piedmontese")
("pt" "portuges")
("pt-br" "brazilian")
("rm" "romansh")
("ro" "romanian")
("ru" "russian")
("sa" "sanskrit")
("se" "samin")
("sk" "slovak")
("sl" "slovenian")
("sq" "albanian")
("sr" "serbian")
("sv" "swedish")
("syr" "syriac")
("ta" "tamil")
("te" "telugu")
("th" "thai")
("tk" "turkmen")
("tr" "turkish")
("uk" "ukrainian")
("ur" "urdu")
("vi" "vietnamese"))
"Alist between language code and corresponding Polyglossia option.")
(make-obsolete-variable 'org-latex-babel-language-alist
"set `org-latex-language-alist' instead." "9.6")
(make-obsolete-variable 'org-latex-polyglossia-language-alist
"set `org-latex-language-alist' instead." "9.6")
;;;; Obsolete link types
(eval-after-load 'ol
@@ -782,6 +1122,8 @@ context. See the individual commands for more information."
(org-link-set-parameters "file+sys"))) ;since Org 9.0
;;; Miscellaneous functions
@@ -798,12 +1140,6 @@ context. See the individual commands for more information."
((and (eq window-system 'w32) (fboundp 'w32-get-clipboard-data))
(w32-get-clipboard-data))))
;; `set-transient-map' is only in Emacs >= 24.4
(defalias 'org-set-transient-map
(if (fboundp 'set-transient-map)
'set-transient-map
'set-temporary-overlay-map))
;;; Region compatibility
@@ -855,13 +1191,6 @@ Pass COLUMN and FORCE to `move-to-column'."
string)
(apply 'kill-new string args))
;; `font-lock-ensure' is only available from 24.4.50 on
(defalias 'org-font-lock-ensure
(if (fboundp 'font-lock-ensure)
#'font-lock-ensure
(lambda (&optional _beg _end)
(with-no-warnings (font-lock-fontify-buffer)))))
;; `file-local-name' was added in Emacs 26.1.
(defalias 'org-babel-local-file-name
(if (fboundp 'file-local-name)
@@ -888,29 +1217,8 @@ Pass COLUMN and FORCE to `move-to-column'."
(defun org-release () "N/A")
(defun org-git-version () "N/A !!check installation!!"))))))
;;; Functions for Emacs < 24.4 compatibility
(defun org-define-error (name message)
"Define NAME as a new error signal.
MESSAGE is a string that will be output to the echo area if such
an error is signaled without being caught by a `condition-case'.
Implements `define-error' for older emacsen."
(if (fboundp 'define-error) (define-error name message)
(put name 'error-conditions
(copy-sequence (cons name (get 'error 'error-conditions))))))
(unless (fboundp 'string-suffix-p)
;; From Emacs subr.el.
(defun string-suffix-p (suffix string &optional ignore-case)
"Return non-nil if SUFFIX is a suffix of STRING.
If IGNORE-CASE is non-nil, the comparison is done without paying
attention to case differences."
(let ((start-pos (- (length string) (length suffix))))
(and (>= start-pos 0)
(eq t (compare-strings suffix nil nil
string start-pos nil ignore-case))))))
(define-obsolete-function-alias 'org-define-error #'define-error "9.6")
(define-obsolete-function-alias 'org-without-partial-completion 'progn "9.6")
;;; Integration with and fixes for other packages
@@ -923,7 +1231,6 @@ attention to case differences."
(defcustom org-imenu-depth 2
"The maximum level for Imenu access to Org headlines.
This also applied for speedbar access."
:group 'org-imenu-and-speedbar
:type 'integer)
;;;; Imenu
@@ -963,7 +1270,7 @@ This also applied for speedbar access."
(add-hook 'imenu-after-jump-hook
(lambda ()
(when (derived-mode-p 'org-mode)
(org-show-context 'org-goto))))
(org-fold-show-context 'org-goto))))
(add-hook 'org-mode-hook
(lambda ()
(setq imenu-create-index-function 'org-imenu-get-tree)))))
@@ -987,7 +1294,7 @@ To get rid of the restriction, use `\\[org-agenda-remove-restriction-lock]'."
(require 'org-agenda)
(let (p m tp np dir txt)
(cond
((setq p (text-property-any (point-at-bol) (point-at-eol)
((setq p (text-property-any (line-beginning-position) (line-end-position)
'org-imenu t))
(setq m (get-text-property p 'org-imenu-marker))
(with-current-buffer (marker-buffer m)
@@ -997,7 +1304,7 @@ To get rid of the restriction, use `\\[org-agenda-remove-restriction-lock]'."
(overlays-at (point))))
(org-agenda-remove-restriction-lock 'noupdate)
(org-agenda-set-restriction-lock 'subtree))))
((setq p (text-property-any (point-at-bol) (point-at-eol)
((setq p (text-property-any (line-beginning-position) (line-end-position)
'speedbar-function 'speedbar-find-file))
(setq tp (previous-single-property-change
(1+ p) 'speedbar-function)
@@ -1014,7 +1321,7 @@ To get rid of the restriction, use `\\[org-agenda-remove-restriction-lock]'."
(org-agenda-set-restriction-lock 'file)))
(t (user-error "Don't know how to restrict Org mode agenda")))
(move-overlay org-speedbar-restriction-lock-overlay
(point-at-bol) (point-at-eol))
(line-beginning-position) (line-end-position))
(setq current-prefix-arg nil)
(org-agenda-maybe-redo)))
@@ -1028,7 +1335,7 @@ To get rid of the restriction, use `\\[org-agenda-remove-restriction-lock]'."
(define-key speedbar-file-key-map ">" 'org-agenda-remove-restriction-lock)
(define-key speedbar-file-key-map "\C-c\C-x>" 'org-agenda-remove-restriction-lock)
(add-hook 'speedbar-visiting-tag-hook
(lambda () (and (derived-mode-p 'org-mode) (org-show-context 'org-goto))))))
(lambda () (and (derived-mode-p 'org-mode) (org-fold-show-context 'org-goto))))))
;;;; Add Log
@@ -1049,9 +1356,9 @@ ELEMENT is the element at point."
(cl-case (org-element-type object)
;; Prevent checks in links due to keybinding conflict with
;; Flyspell.
((code entity export-snippet inline-babel-call
inline-src-block line-break latex-fragment link macro
statistics-cookie target timestamp verbatim)
((citation citation-reference code entity export-snippet inline-babel-call
inline-src-block line-break latex-fragment link macro
statistics-cookie target timestamp verbatim)
nil)
(footnote-reference
;; Only in inline footnotes, within the definition.
@@ -1076,8 +1383,8 @@ ELEMENT is the element at point."
(or (not (match-beginning 5))
(< (point) (match-beginning 5)))
;; Ignore checks in code, verbatim and others.
(org--flyspell-object-check-p (org-element-at-point)))
(let* ((element (org-element-at-point))
(org--flyspell-object-check-p (org-element-at-point-no-context)))
(let* ((element (org-element-at-point-no-context))
(post-affiliated (org-element-property :post-affiliated element)))
(cond
;; Ignore checks in all affiliated keywords but captions.
@@ -1092,10 +1399,8 @@ ELEMENT is the element at point."
(and log
(let ((drawer (org-element-lineage element '(drawer))))
(and drawer
(eq (compare-strings
log nil nil
(org-element-property :drawer-name drawer) nil nil t)
t)))))
(org-string-equal-ignore-case
log (org-element-property :drawer-name drawer))))))
nil)
(t
(cl-case (org-element-type element)
@@ -1136,16 +1441,16 @@ ELEMENT is the element at point."
;;;; Bookmark
(defun org-bookmark-jump-unhide ()
(defun org-bookmark-jump-unhide (&rest _)
"Unhide the current position, to show the bookmark location."
(and (derived-mode-p 'org-mode)
(or (org-invisible-p)
(save-excursion (goto-char (max (point-min) (1- (point))))
(org-invisible-p)))
(org-show-context 'bookmark-jump)))
(org-fold-show-context 'bookmark-jump)))
;; Make `bookmark-jump' shows the jump location if it was hidden.
(add-hook 'bookmark-after-jump-hook 'org-bookmark-jump-unhide)
(add-hook 'bookmark-after-jump-hook #'org-bookmark-jump-unhide)
;;;; Calendar
@@ -1198,42 +1503,29 @@ key."
;;;; Saveplace
;; Make sure saveplace shows the location if it was hidden
(eval-after-load 'saveplace
'(defadvice save-place-find-file-hook (after org-make-visible activate)
"Make the position visible."
(org-bookmark-jump-unhide)))
(advice-add 'save-place-find-file-hook :after #'org-bookmark-jump-unhide)
;;;; Ecb
;; Make sure ecb shows the location if it was hidden
(eval-after-load 'ecb
'(defadvice ecb-method-clicked (after esf/org-show-context activate)
"Make hierarchy visible when jumping into location from ECB tree buffer."
(when (derived-mode-p 'org-mode)
(org-show-context))))
(advice-add 'ecb-method-clicked :after #'org--ecb-show-context)
(defun org--ecb-show-context (&rest _)
"Make hierarchy visible when jumping into location from ECB tree buffer."
(when (derived-mode-p 'org-mode)
(org-fold-show-context)))
;;;; Simple
(defun org-mark-jump-unhide ()
(defun org-mark-jump-unhide (&rest _)
"Make the point visible with `org-show-context' after jumping to the mark."
(when (and (derived-mode-p 'org-mode)
(org-invisible-p))
(org-show-context 'mark-goto)))
(org-fold-show-context 'mark-goto)))
(eval-after-load 'simple
'(defadvice pop-to-mark-command (after org-make-visible activate)
"Make the point visible with `org-show-context'."
(org-mark-jump-unhide)))
(advice-add 'pop-to-mark-command :after #'org-mark-jump-unhide)
(eval-after-load 'simple
'(defadvice exchange-point-and-mark (after org-make-visible activate)
"Make the point visible with `org-show-context'."
(org-mark-jump-unhide)))
(eval-after-load 'simple
'(defadvice pop-global-mark (after org-make-visible activate)
"Make the point visible with `org-show-context'."
(org-mark-jump-unhide)))
(advice-add 'exchange-point-and-mark :after #'org-mark-jump-unhide)
(advice-add 'pop-global-mark :after #'org-mark-jump-unhide)
;;;; Session
@@ -1242,11 +1534,82 @@ key."
(eval-after-load 'session
'(add-to-list 'session-globals-exclude 'org-mark-ring))
;;;; outline-mode
;; Folding in outline-mode is not compatible with org-mode folding
;; anymore. Working around to avoid breakage of external packages
;; assuming the compatibility.
(define-advice outline-flag-region (:around (oldfun from to flag &rest extra) fix-for-org-fold)
"Run `org-fold-region' when in org-mode."
(if (derived-mode-p 'org-mode)
(org-fold-region (max from (point-min)) (min to (point-max)) flag 'headline)
;; Apply EXTRA to avoid breakages if adviced function definition
;; changes.
(apply oldfun from to flag extra)))
(define-advice outline-next-visible-heading (:around (oldfun arg &rest extra) fix-for-org-fold)
"Run `org-next-visible-heading' when in org-mode."
(if (derived-mode-p 'org-mode)
(org-next-visible-heading arg)
;; Apply EXTRA to avoid breakages if adviced function definition
;; changes.
(apply oldfun arg extra)))
(define-advice outline-back-to-heading (:around (oldfun &optional invisible-ok &rest extra) fix-for-org-fold)
"Run `org-back-to-heading' when in org-mode."
(if (derived-mode-p 'org-mode)
(progn
(beginning-of-line)
(or (org-at-heading-p (not invisible-ok))
(let (found)
(save-excursion
(while (not found)
(or (re-search-backward (concat "^\\(?:" outline-regexp "\\)")
nil t)
(signal 'outline-before-first-heading nil))
(setq found (and (or invisible-ok (not (org-fold-folded-p)))
(point)))))
(goto-char found)
found)))
;; Apply EXTRA to avoid breakages if adviced function definition
;; changes.
(apply oldfun invisible-ok extra)))
(define-advice outline-on-heading-p (:around (oldfun &optional invisible-ok &rest extra) fix-for-org-fold)
"Run `org-at-heading-p' when in org-mode."
(if (derived-mode-p 'org-mode)
(org-at-heading-p (not invisible-ok))
;; Apply EXTRA to avoid breakages if adviced function definition
;; changes.
(apply oldfun invisible-ok extra)))
(define-advice outline-hide-sublevels (:around (oldfun levels &rest extra) fix-for-org-fold)
"Run `org-fold-hide-sublevels' when in org-mode."
(if (derived-mode-p 'org-mode)
(org-fold-hide-sublevels levels)
;; Apply EXTRA to avoid breakages if adviced function definition
;; changes.
(apply oldfun levels extra)))
(define-advice outline-toggle-children (:around (oldfun &rest extra) fix-for-org-fold)
"Run `org-fold-hide-sublevels' when in org-mode."
(if (derived-mode-p 'org-mode)
(save-excursion
(org-back-to-heading)
(if (not (org-fold-folded-p (line-end-position)))
(org-fold-hide-subtree)
(org-fold-show-children)
(org-fold-show-entry 'hide-drawers)))
;; Apply EXTRA to avoid breakages if adviced function definition
;; changes.
(apply oldfun extra)))
;; TODO: outline-headers-as-kill
;;;; Speed commands
(make-obsolete-variable 'org-speed-commands-user
"configure `org-speed-commands' instead." "9.5")
(provide 'org-compat)
;; Local variables: