* lisp/org-src.el (org-edit-src-code): Don't throw an error
when trying to find the source language in a non-interactive
call, typically when called for template expansion.
Thanks to Tyler Smith and Jack Kamm for reporting a related bug.
* lisp/org-src.el (org-src-switch-to-buffer): Add call to
quit-restore-window in org-src-switch-to-buffer when
org-src-window-setup is other-window so that the popped up window is
closed on exit.
* lisp/org-src.el (org-src--content-indentation): Introduce
permanently buffer-local variable for storing away the potentially
buffer-local value of `org-edit-src-content-indentation' in the source
buffer.
(org-src--contents-for-write-back): Use `org-src--content-indentation'
instead of `org-edit-src-content-indentation' in the edit buffer.
(org-src--edit-element): Set `org-src--content-indentation' in editing
buffer. For greater clarity and consistency, rename already existing
let-bound variable `ind' to `block-ind'.
* org-src.el (org-src-window-setup, org-src-switch-to-buffer): Added
new split-window-right option which splits horizontally.
This has been motivated by the increasing use of wide monitors.
* lisp/org-src.el (org-src-get-lang-mode): New function.
(org-src--get-lang-mode): Rename to `org-src-get-lang-mode'.
(org-src-font-lock-fontify-block):
(org-edit-latex-environment):
(org-edit-export-block):
(org-edit-src-code):
(org-edit-inline-src-code): Use new function.
* lisp/org-src.el (org-src-source-file-name): New variable.
(org-src--edit-element): Set new variable.
* lisp/org.el (org-store-link): Store the source file along with the
coderef so as to insert link in other documents than the one
where the code block is located.
Reported-by: stardiviner <numbchild@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-10/msg00293.html>
* lisp/org-src.el (org-src--source-buffer): Rename to `org-src-source-buffer'.
(org-src-source-type): New function.
(org-edit-src-save): Apply renaming.
* lisp/org.el (org-store-link): When in an edit buffer not editing
a source block, there is no point in inserting a coderef.
* lisp/org-src.el (org-src--allow-write-back):
(org-src--auto-save-timer):
(org-src--babel-info):
(org-src--beg-marker):
(org-src--block-indentation):
(org-src--end-marker):
(org-src--from-org-mode):
(org-src--overlay):
(org-src--preserve-indentation):
(org-src--remote):
(org-src--saved-temp-window-config):
(org-src--source-type):
(org-src--tab-width): Define as local and permanent variable.
(org-src--edit-element):
(org-edit-src-code):
(org-edit-inline-src-code): Use `setq' instead of `setq-local'.
When major mode is changed in an edit buffer, the variables above
would be cleared and the overlay in the source buffer could not be
removed anymore.
* lisp/org-src.el (org-src--contents-for-write-back):
(org-src-mode):
(org-src-mode-configure-edit-buffer): Use `setq' instead of
`setq-local' on variable automatically buffer-local when set.
* lisp/org-src.el (org-edit-footnote-reference): Do not collapse
footnote definitions after editing remotely one of them.
* testing/lisp/test-org-src.el (test-org-src/footnote-references): New
test.
* lisp/org-src.el (org-src--source-type):
(org-src--tab-width): New variables.
(org-src--edit-element): Set variables above.
(org-src--contents-for-write-back): Re-indent properly non-blank lines
before inserting contents back into the source buffer.
(org-edit-src-code): Delegate block indentation to
`org-src--contents-for-write-back'.
* testing/lisp/test-org-src.el (test-org-src/indented-blocks): New
test.
Reported-by: Brent Goodrick <bgoodr@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/113207>