emacs-orgmode
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]