[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] coderef does not provide file path for org-insert-link when not
From: |
Nicolas Goaziou |
Subject: |
Re: [O] coderef does not provide file path for org-insert-link when not in original buffre |
Date: |
Thu, 01 Nov 2018 18:39:32 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Hello,
stardiviner <address@hidden> writes:
> I regenerated the patch.
Thank you. Some more comments.
> * org-src.el (org-src-source-file): Add a variable to get the file path
> at the beginning of the function `org-src--edit-element'.
> * org.el (org-insert-link): support option org-link-file-path-type
> 'adaptive value.
> ---
> lisp/org-src.el | 9 ++++++++-
> lisp/org.el | 9 ++++++---
> 2 files changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/lisp/org-src.el b/lisp/org-src.el
> index 42e1225ed..0426ff96a 100644
> --- a/lisp/org-src.el
> +++ b/lisp/org-src.el
> @@ -277,6 +277,11 @@ issued in the language major mode buffer."
> "Type of element being edited, as a symbol.")
> (put 'org-src--source-type 'permanent-local t)
>
> +(defvar org-src--source-file nil
> + "A variable used to store the source file path before entering
> + source block dedicated buffer.")
> +(put 'org-src--source-file 'permanent-local t)
The first sentence of a docstring needs to be one or more complete
sentences.
Why not using `defvar-local' instead? Also, since it is meant to be used
in other libraries, it should be `org-src-source-file'.
> + (lang-f (progn
> + (setq-local org-src--source-file (buffer-file-name))
> + (and (eq type 'src-block) (org-src--get-lang-mode lang))))
I don't think this is the right place to set `org-src--source-file': it
is unrelated to LANG-F.
Also, the value comes from the source buffer, but the variable needs to
be set in the edit buffer. AFAIU, here you set it in the source buffer,
not in the edit buffer.
> + (insert (format coderef-format label))
> + (setq link (format "file:%s::%s"
> + org-src--source-file
> + (concat "(" label ")")))
Should we check if `org-src-source-file' is the same as the current
file, and offer a simplified link in this case?
> (setq desc nil)))
> (t (setq link nil)))))
>
> @@ -9852,6 +9853,8 @@ Use TAB to complete link prefixes, then RET for
> type-specific completion support
> (setq path (expand-file-name path)))
> ((eq org-link-file-path-type 'relative)
> (setq path (file-relative-name path)))
> + ((eq org-link-file-path-type 'adaptive)
> + (setq path (file-relative-name path)))
> (t
> (save-match-data
> (if (string-match (concat "^" (regexp-quote
Would you writing a few tests?
Thank you.
Regards,
--
Nicolas Goaziou
- Re: [O] coderef does not provide file path for org-insert-link when not in original buffre,
Nicolas Goaziou <=