forked from mirrors/org-mode
Merge branch 'maint' into emacs-sync
This commit is contained in:
commit
ac94897c2c
|
@ -1625,8 +1625,8 @@ bullets between START and END."
|
|||
(funcall change-bullet-maybe item)
|
||||
(cond
|
||||
;; First item indented but not parent: error
|
||||
((and (not prev) (< parent start))
|
||||
(error "Cannot indent the first item of a list"))
|
||||
((and (not prev) (or (not parent) (< parent start)))
|
||||
(user-error "Cannot indent the first item of a list"))
|
||||
;; First item and parent indented: keep same
|
||||
;; parent.
|
||||
((not prev) (funcall set-assoc cell))
|
||||
|
|
|
@ -229,23 +229,48 @@ issued in the language major mode buffer."
|
|||
|
||||
;;; Internal functions and variables
|
||||
|
||||
(defvar org-src--allow-write-back t)
|
||||
(defvar org-src--auto-save-timer nil)
|
||||
(defvar org-src--babel-info nil)
|
||||
(defvar org-src--beg-marker nil)
|
||||
(defvar org-src--block-indentation nil)
|
||||
(defvar org-src--end-marker nil)
|
||||
(defvar org-src--from-org-mode nil)
|
||||
(defvar org-src--overlay nil)
|
||||
(defvar org-src--preserve-indentation nil)
|
||||
(defvar org-src--remote nil)
|
||||
(defvar org-src--saved-temp-window-config nil)
|
||||
(defvar org-src--source-type nil
|
||||
(defvar-local org-src--allow-write-back t)
|
||||
(put 'org-src--allow-write-back 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--auto-save-timer nil)
|
||||
(put 'org-src--auto-save-timer 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--babel-info nil)
|
||||
(put 'org-src--babel-info 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--beg-marker nil)
|
||||
(put 'org-src--beg-marker 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--block-indentation nil)
|
||||
(put 'org-src--block-indentation 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--end-marker nil)
|
||||
(put 'org-src--end-marker 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--from-org-mode nil)
|
||||
(put 'org-src--from-org-mode 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--overlay nil)
|
||||
(put 'org-src--overlay 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--preserve-indentation nil)
|
||||
(put 'org-src--preserve-indentation 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--remote nil)
|
||||
(put 'org-src--remote 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--saved-temp-window-config nil)
|
||||
(put 'org-src--saved-temp-window-config 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--source-type nil
|
||||
"Type of element being edited, as a symbol.")
|
||||
(defvar org-src--tab-width nil
|
||||
(put 'org-src--source-type 'permanent-local t)
|
||||
|
||||
(defvar-local org-src--tab-width nil
|
||||
"Contains `tab-width' value from Org source buffer.
|
||||
However, if `indent-tabs-mode' is nil in that buffer, its value
|
||||
is 0.")
|
||||
(put 'org-src--tab-width 'permanent-local t)
|
||||
|
||||
(defun org-src--construct-edit-buffer-name (org-buffer-name lang)
|
||||
"Construct the buffer name for a source editing buffer."
|
||||
|
@ -498,16 +523,16 @@ Leave point in edit buffer."
|
|||
;; Transmit buffer-local variables for exit function. It must
|
||||
;; be done after initializing major mode, as this operation
|
||||
;; may reset them otherwise.
|
||||
(setq-local org-src--tab-width source-tab-width)
|
||||
(setq-local org-src--from-org-mode org-mode-p)
|
||||
(setq-local org-src--beg-marker beg)
|
||||
(setq-local org-src--end-marker end)
|
||||
(setq-local org-src--remote remote)
|
||||
(setq-local org-src--source-type type)
|
||||
(setq-local org-src--block-indentation ind)
|
||||
(setq-local org-src--preserve-indentation preserve-ind)
|
||||
(setq-local org-src--overlay overlay)
|
||||
(setq-local org-src--allow-write-back write-back)
|
||||
(setq org-src--tab-width source-tab-width)
|
||||
(setq org-src--from-org-mode org-mode-p)
|
||||
(setq org-src--beg-marker beg)
|
||||
(setq org-src--end-marker end)
|
||||
(setq org-src--remote remote)
|
||||
(setq org-src--source-type type)
|
||||
(setq org-src--block-indentation ind)
|
||||
(setq org-src--preserve-indentation preserve-ind)
|
||||
(setq org-src--overlay overlay)
|
||||
(setq org-src--allow-write-back write-back)
|
||||
;; Start minor mode.
|
||||
(org-src-mode)
|
||||
;; Move mark and point in edit buffer to the corresponding
|
||||
|
@ -977,7 +1002,7 @@ name of the sub-editing buffer."
|
|||
(or (org-element-property :label-fmt element)
|
||||
org-coderef-label-format))
|
||||
(when (eq type 'src-block)
|
||||
(setq-local org-src--babel-info babel-info)
|
||||
(setq org-src--babel-info babel-info)
|
||||
(let ((edit-prep-func (intern (concat "org-babel-edit-prep:" lang))))
|
||||
(when (fboundp edit-prep-func)
|
||||
(funcall edit-prep-func babel-info))))
|
||||
|
@ -1010,8 +1035,8 @@ name of the sub-editing buffer."
|
|||
(skip-chars-backward " \t")
|
||||
(delete-region (point) (point-max))))
|
||||
;; Finalize buffer.
|
||||
(setq-local org-src--babel-info babel-info)
|
||||
(setq-local org-src--preserve-indentation t)
|
||||
(setq org-src--babel-info babel-info)
|
||||
(setq org-src--preserve-indentation t)
|
||||
(let ((edit-prep-func (intern (concat "org-babel-edit-prep:" lang))))
|
||||
(when (fboundp edit-prep-func) (funcall edit-prep-func babel-info)))
|
||||
;; Return success.
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
;; Maintainer: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: https://orgmode.org
|
||||
;; Version: 9.1.12
|
||||
;; Version: 9.1.13
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -10539,7 +10539,7 @@ Raise an error when there is nothing to follow. "
|
|||
(with-temp-buffer
|
||||
(let ((org-inhibit-startup (not reference-buffer)))
|
||||
(org-mode)
|
||||
(insert (org-link-escape s))
|
||||
(insert s)
|
||||
(goto-char (point-min))
|
||||
(when reference-buffer
|
||||
(setq org-link-abbrev-alist-local
|
||||
|
|
|
@ -1981,19 +1981,15 @@ communication channel."
|
|||
(format "<p class=\"creator\">%s</p>\n" creator))
|
||||
(format "<p class=\"validation\">%s</p>\n"
|
||||
validation-link))))
|
||||
(t (format-spec
|
||||
(or (cadr (assoc-string
|
||||
(plist-get info :language)
|
||||
(eval (intern
|
||||
(format "org-html-%s-format" type)))
|
||||
t))
|
||||
(cadr
|
||||
(assoc-string
|
||||
"en"
|
||||
(eval
|
||||
(intern (format "org-html-%s-format" type)))
|
||||
t)))
|
||||
spec))))))
|
||||
(t
|
||||
(let ((formats (plist-get info (if (eq type 'preamble)
|
||||
:html-preamble-format
|
||||
:html-postamble-format)))
|
||||
(language (plist-get info :language)))
|
||||
(format-spec
|
||||
(cadr (or (assoc-string language formats t)
|
||||
(assoc-string "en" formats t)))
|
||||
spec)))))))
|
||||
(let ((div (assq type (plist-get info :html-divs))))
|
||||
(when (org-string-nw-p section-contents)
|
||||
(concat
|
||||
|
|
|
@ -220,69 +220,73 @@
|
|||
|
||||
(ert-deftest test-org-list/indent-item ()
|
||||
"Test `org-indent-item' specifications."
|
||||
;; 1. Error when not at an item.
|
||||
;; Error when not at an item.
|
||||
(org-test-with-temp-text "Paragraph."
|
||||
(should-error (org-indent-item)))
|
||||
;; 2. Error when trying to move first item of a list.
|
||||
(org-test-with-temp-text "
|
||||
;; Error when trying to move first item of a list.
|
||||
(should-error
|
||||
(org-test-with-temp-text "
|
||||
- Item 1
|
||||
- Item 2"
|
||||
(forward-line)
|
||||
(should-error (org-indent-item)))
|
||||
;; 3. Indent a single item, not its children.
|
||||
(org-test-with-temp-text "
|
||||
(forward-line)
|
||||
(org-indent-item)))
|
||||
(should-error
|
||||
(org-test-with-temp-text "
|
||||
- Item 1
|
||||
- Item 2
|
||||
- Item 2.1"
|
||||
(search-forward "- Item 2")
|
||||
(let (org-list-demote-modify-bullet) (org-indent-item))
|
||||
(should (equal (buffer-string)
|
||||
"
|
||||
- Item 2"
|
||||
(forward-line)
|
||||
(let ((org-list-automatic-rules nil)) (org-indent-item))))
|
||||
;; Indent a single item, not its children.
|
||||
(should
|
||||
(equal "
|
||||
- Item 1
|
||||
- Item 2
|
||||
- Item 2.1")))
|
||||
;; 4. Follow `org-list-demote-modify-bullet' specifications.
|
||||
;;
|
||||
;; 4.1. With unordered lists.
|
||||
(org-test-with-temp-text "
|
||||
- Item 2.1"
|
||||
(org-test-with-temp-text "
|
||||
- Item 1
|
||||
- Item 2"
|
||||
(search-forward "- Item 2")
|
||||
(let ((org-list-demote-modify-bullet '(("-" . "+")))) (org-indent-item))
|
||||
(should (equal (buffer-string)
|
||||
"
|
||||
- Item 2<point>
|
||||
- Item 2.1"
|
||||
(let (org-list-demote-modify-bullet) (org-indent-item))
|
||||
(buffer-string))))
|
||||
;; Follow `org-list-demote-modify-bullet' specifications.
|
||||
(should
|
||||
(equal "
|
||||
- Item 1
|
||||
+ Item 2")))
|
||||
;; 4.2. and ordered lists.
|
||||
(org-test-with-temp-text "
|
||||
+ Item 2"
|
||||
(org-test-with-temp-text "
|
||||
- Item 1
|
||||
- Item 2<point>"
|
||||
(let ((org-list-demote-modify-bullet '(("-" . "+"))))
|
||||
(org-indent-item))
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "
|
||||
1. Item 1
|
||||
2. Item 2"
|
||||
(search-forward "2. Item 2")
|
||||
(let ((org-plain-list-ordered-item-terminator t)
|
||||
(org-list-demote-modify-bullet '(("1." . "+"))))
|
||||
(org-indent-item))
|
||||
(should (equal (buffer-string)
|
||||
"
|
||||
+ Item 2"
|
||||
(org-test-with-temp-text "
|
||||
1. Item 1
|
||||
+ Item 2")))
|
||||
;; 5. When a region is selected, indent every item within.
|
||||
(org-test-with-temp-text "
|
||||
- Item 1
|
||||
- Item 2
|
||||
- Item 3
|
||||
"
|
||||
(search-forward "- Item 2")
|
||||
(beginning-of-line)
|
||||
(transient-mark-mode 1)
|
||||
(push-mark (point) t t)
|
||||
(goto-char (point-max))
|
||||
(let (org-list-demote-modify-bullet) (org-indent-item))
|
||||
(should (equal (buffer-string)
|
||||
"
|
||||
2. Item 2<point>"
|
||||
(let ((org-plain-list-ordered-item-terminator t)
|
||||
(org-list-demote-modify-bullet '(("1." . "+"))))
|
||||
(org-indent-item))
|
||||
(buffer-string))))
|
||||
;; When a region is selected, indent every item within.
|
||||
(should
|
||||
(equal "
|
||||
- Item 1
|
||||
- Item 2
|
||||
- Item 3
|
||||
"))))
|
||||
"
|
||||
(org-test-with-temp-text "
|
||||
- Item 1
|
||||
<point>- Item 2
|
||||
- Item 3
|
||||
"
|
||||
(transient-mark-mode 1)
|
||||
(push-mark (point) t t)
|
||||
(goto-char (point-max))
|
||||
(let (org-list-demote-modify-bullet) (org-indent-item))
|
||||
(buffer-string)))))
|
||||
|
||||
(ert-deftest test-org-list/indent-item-tree ()
|
||||
"Test `org-indent-item-tree' specifications."
|
||||
|
|
Loading…
Reference in New Issue