* Link "bracket-types" @ 2018-05-10 6:08 Michael Brand 2018-05-10 8:14 ` Nicolas Goaziou 0 siblings, 1 reply; 21+ messages in thread From: Michael Brand @ 2018-05-10 6:08 UTC (permalink / raw) To: Org Mode Hi all For the four different Org link "bracket-types" shown below I would like to have four different faces to be able to distinguish them at first sight. What is the recommended way to do this? The four Org link bracket-types by example: Buffer raw content (or visible-mode): : 1) [[https://en.wikipedia.org/wiki/Filter#References][https://en.wikipedia.org/wiki/Filter]] : 2) https://en.wikipedia.org/wiki/Filter : 3) [[https://en.wikipedia.org/wiki/Filter]] : 4) [[https://en.wikipedia.org/wiki/Filter_(higher-order_function)]] (To try them out copy the above into an Org buffer and remove the colons.) Currently rendered all with the same face as: : 1) https://en.wikipedia.org/wiki/Filter : 2) https://en.wikipedia.org/wiki/Filter : 3) https://en.wikipedia.org/wiki/Filter : 4) https://en.wikipedia.org/wiki/Filter_(higher-order_function) As you know and can see above 1) to 3) can not be distinguished when rendered with the default of org-descriptive-links t. The brackets for 3) are optional as 2) opens the same URL. The brackets for 4) are mandatory because without them "_(higher-order_function)" is not fontified and not recognized by org-open-at-point as part of the Org link any more. I think 4) can be distinguished from 3) by comparing the bracket content with the part fontified and/or recognized as Org link when the bracket content without the brackets is matched/parsed again stand-alone. org-descriptive-links permanently nil does not seem to be an alternative as it disturbs text flow and org-fill-paragraph. org-toggle-link-display does not seem to be an alternative as it would have to be toggled forth and back on every new window scroll view. Michael ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 6:08 Link "bracket-types" Michael Brand @ 2018-05-10 8:14 ` Nicolas Goaziou 2018-05-10 8:32 ` Eric S Fraga 2018-05-10 9:41 ` Michael Brand 0 siblings, 2 replies; 21+ messages in thread From: Nicolas Goaziou @ 2018-05-10 8:14 UTC (permalink / raw) To: Michael Brand; +Cc: Org Mode Hello, Michael Brand <michael.ch.brand@gmail.com> writes: > > For the four different Org link "bracket-types" shown below I would > like to have four different faces to be able to distinguish them at > first sight. What is the recommended way to do this? This is not possible. I'm not even sure this is desirable. Note that 2) is not a "bracket type". > The four Org link bracket-types by example: > > Buffer raw content (or visible-mode): > : 1) [[https://en.wikipedia.org/wiki/Filter#References][https://en.wikipedia.org/wiki/Filter]] > : 2) https://en.wikipedia.org/wiki/Filter > : 3) [[https://en.wikipedia.org/wiki/Filter]] > : 4) [[https://en.wikipedia.org/wiki/Filter_(higher-order_function)]] > > (To try them out copy the above into an Org buffer and remove the colons.) > > Currently rendered all with the same face as: > : 1) https://en.wikipedia.org/wiki/Filter > : 2) https://en.wikipedia.org/wiki/Filter > : 3) https://en.wikipedia.org/wiki/Filter > : 4) https://en.wikipedia.org/wiki/Filter_(higher-order_function) > > As you know and can see above 1) to 3) can not be distinguished when > rendered with the default of org-descriptive-links t. Just move the mouse over them. A tooltip or the minibuffer will display what the link is really. > The brackets for 3) are optional as 2) opens the same URL. They are strictly equivalent, indeed. > The brackets for 4) are mandatory because without them > "_(higher-order_function)" is not fontified and not recognized by > org-open-at-point as part of the Org link any more. True. This limitation is a feature. You cannot have parenthesis in plain links even though they are technically allowed in URL. However, you could also use angle brackets. <https://en.wikipedia.org/wiki/Filter_(higher-order_function)> The advantage on angle brackets is that they make it clear there is no description attached to the link, i.e., the brackets are visible when fontified). You can also use angle brackets for a more prominent visual clue. I'm not sure to understand the problem you want to solve. What is important is if the displayed part of a link is a description or the URL itself, i.e., case 1. This is solved by hovering the mouse above the link. The other cases are equivalent, barring the limitation from case 2. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 8:14 ` Nicolas Goaziou @ 2018-05-10 8:32 ` Eric S Fraga 2018-05-11 12:34 ` Nicolas Goaziou 2018-05-10 9:41 ` Michael Brand 1 sibling, 1 reply; 21+ messages in thread From: Eric S Fraga @ 2018-05-10 8:32 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Michael Brand, Org Mode [-- Attachment #1: Type: text/plain, Size: 657 bytes --] On Thursday, 10 May 2018 at 10:14, Nicolas Goaziou wrote: > Michael Brand <michael.ch.brand@gmail.com> writes: [...] >> As you know and can see above 1) to 3) can not be distinguished when >> rendered with the default of org-descriptive-links t. > > Just move the mouse over them. A tooltip or the minibuffer will display > what the link is really. Feature request: would it be possible to have the link echoed in the minibuffer when point enters or is on a link? I don't use the mouse at all and always end up having to C-c l to see what the link is. thanks, eric -- Eric S Fraga via Emacs 27.0.50, Org release_9.1.6-591-gee336b [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 194 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 8:32 ` Eric S Fraga @ 2018-05-11 12:34 ` Nicolas Goaziou 2018-05-11 13:20 ` Eric S Fraga 0 siblings, 1 reply; 21+ messages in thread From: Nicolas Goaziou @ 2018-05-11 12:34 UTC (permalink / raw) To: Michael Brand; +Cc: Org Mode Hello, Eric S Fraga <esflists@gmail.com> writes: > Feature request: would it be possible to have the link echoed in the > minibuffer when point enters or is on a link? I don't use the mouse at > all and always end up having to C-c l to see what the link is. You can use :activate-func link parameter (see `org-link-parameters') to set `cursor-sensor-functions'. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-11 12:34 ` Nicolas Goaziou @ 2018-05-11 13:20 ` Eric S Fraga 0 siblings, 0 replies; 21+ messages in thread From: Eric S Fraga @ 2018-05-11 13:20 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Michael Brand, Org Mode [-- Attachment #1: Type: text/plain, Size: 852 bytes --] On Friday, 11 May 2018 at 14:34, Nicolas Goaziou wrote: > Hello, > > Eric S Fraga <esflists@gmail.com> writes: > >> Feature request: would it be possible to have the link echoed in the >> minibuffer when point enters or is on a link? I don't use the mouse at >> all and always end up having to C-c l to see what the link is. > > You can use :activate-func link parameter (see `org-link-parameters') to > set `cursor-sensor-functions'. Thank you. But I would need to redefine all link types, I guess, to include this setting (and would need to write the function as well which is arguably beyond my capabilities ;-)). I was suggesting this as something that should be the default behaviour but it's nice to know that it's possible to achieve. For a rainy day! -- Eric S Fraga via Emacs 27.0.50, Org release_9.1.11-620-ga548e4 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 194 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 8:14 ` Nicolas Goaziou 2018-05-10 8:32 ` Eric S Fraga @ 2018-05-10 9:41 ` Michael Brand 2018-05-10 12:44 ` Nicolas Goaziou 1 sibling, 1 reply; 21+ messages in thread From: Michael Brand @ 2018-05-10 9:41 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Org Mode Hi Nicolas Thank you for looking into this. On Thu, May 10, 2018 at 10:14 AM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > Just move the mouse over them. A tooltip or the minibuffer will display > what the link is really. During my use case I don't care what URL the link opens. I want to know if there are brackets and even better when I know whether they are case 1 or 3/4. > True. This limitation is a feature. You cannot have parenthesis in plain > links even though they are technically allowed in URL. > > However, you could also use angle brackets. > > <https://en.wikipedia.org/wiki/Filter_(higher-order_function)> > > The advantage on angle brackets is that they make it clear there is no > description attached to the link, i.e., the brackets are visible when > fontified). You can also use angle brackets for a more prominent visual > clue. Good to know, I didn't (or forgot?). > I'm not sure to understand the problem you want to solve. What is > important is if the displayed part of a link is a description or the URL > itself, i.e., case 1. This is solved by hovering the mouse above the > link. The other cases are equivalent, barring the limitation from case > 2. My use case is different, see above, and I don't like to move point or mouse for my use case. I would like to have a visual indication like with org-descriptive-links nil which leads to this thought: Probably better than more faces would be to render case 1 like with org-descriptive-links t and case 3/4 like with org-descriptive-links nil. What would be the recommended way to do this? Could that become a new value beside the current t and nil for org-descriptive-links? Michael ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 9:41 ` Michael Brand @ 2018-05-10 12:44 ` Nicolas Goaziou 2018-05-10 13:23 ` Michael Brand 0 siblings, 1 reply; 21+ messages in thread From: Nicolas Goaziou @ 2018-05-10 12:44 UTC (permalink / raw) To: Michael Brand; +Cc: Org Mode Michael Brand <michael.ch.brand@gmail.com> writes: > My use case is different, see above, and I don't like to move point or > mouse for my use case. I still don't understand what your use case is about. Why do you care about the presence of square brackets? It is difficult to think about the pertinence of a solution if the problem is not well defined. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 12:44 ` Nicolas Goaziou @ 2018-05-10 13:23 ` Michael Brand 2018-05-10 13:33 ` Nicolas Goaziou 0 siblings, 1 reply; 21+ messages in thread From: Michael Brand @ 2018-05-10 13:23 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Org Mode Hi Nicolas On Thu, May 10, 2018 at 2:44 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > I still don't understand what your use case is about. Why do you care > about the presence of square brackets? Because I care about the raw file content that I see when using non-Org tools like mainly git but also diff, grep, less, vi and whatever. > It is difficult to think about the pertinence of a solution if the > problem is not well defined. I could use org-descriptive-links nil to make the brackets visible. But I would prefer a compromise like I mentioned in my last post: Case 1 like with org-descriptive-links t and case 3/4 like with org-descriptive-links nil. Michael ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 13:23 ` Michael Brand @ 2018-05-10 13:33 ` Nicolas Goaziou 2018-05-10 14:29 ` Michael Brand 0 siblings, 1 reply; 21+ messages in thread From: Nicolas Goaziou @ 2018-05-10 13:33 UTC (permalink / raw) To: Michael Brand; +Cc: Org Mode Michael Brand <michael.ch.brand@gmail.com> writes: > Because I care about the raw file content that I see when using > non-Org tools like mainly git but also diff, grep, less, vi and > whatever. Sorry for being dense, but I still don't get it. When using non-Org tools, the solution doesn't belong to Org, does it? I mean, we are talking about fontification in Emacs Org mode. Tweaking it will not change the output of these other tools. This is probably obvious to you, but again, this is a genuine question: how would you use /in Org/ the information about the brackets surrounding the link? A concrete example would probably help. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 13:33 ` Nicolas Goaziou @ 2018-05-10 14:29 ` Michael Brand 2018-05-10 16:27 ` Nicolas Goaziou 0 siblings, 1 reply; 21+ messages in thread From: Michael Brand @ 2018-05-10 14:29 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Org Mode Hi Nicolas On Thu, May 10, 2018 at 3:33 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > Sorry for being dense, but I still don't get it. I can not claim to have been clear enough, hope to make it clearer below. > When using non-Org tools, the solution doesn't belong to Org, does it? > I mean, we are talking about fontification in Emacs Org mode. Tweaking > it will not change the output of these other tools. Agreed. > This is probably obvious to you, but again, this is a genuine question: > how would you use /in Org/ the information about the brackets > surrounding the link? A concrete example would probably help. Only when I can see the brackets of case 3 in Org rendered as : [[https://en.wikipedia.org/wiki/Filter]] I know that I can change it to : https://en.wikipedia.org/wiki/Filter for a cleaner view in non-Org tools. For case 1 I still prefer to see only the link description because I prefer to hide a too disturbing URL part most of the times. My example for case 1 is only artificial and my actual descriptions will be such that it can not be confused with case 2. I hope the previously described idea of a third value for org-descriptive-links or something similar makes some sense. Michael ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 14:29 ` Michael Brand @ 2018-05-10 16:27 ` Nicolas Goaziou 2018-05-10 19:58 ` Samuel Wales 2018-05-10 19:59 ` Michael Brand 0 siblings, 2 replies; 21+ messages in thread From: Nicolas Goaziou @ 2018-05-10 16:27 UTC (permalink / raw) To: Michael Brand; +Cc: Org Mode Michael Brand <michael.ch.brand@gmail.com> writes: > Only when I can see the brackets of case 3 in Org rendered as > : [[https://en.wikipedia.org/wiki/Filter]] > I know that I can change it to > : https://en.wikipedia.org/wiki/Filter > for a cleaner view in non-Org tools. > > For case 1 I still prefer to see only the link description because I > prefer to hide a too disturbing URL part most of the times. My example > for case 1 is only artificial and my actual descriptions will be such > that it can not be confused with case 2. IIUC, you want fontification to make it obvious there are square brackets in links, so that you know when they can be removed, for improved readability outside Org. If I'm correct, why don't you write a function that normalizes links for you, so you don't have to bother, e.g., something that turns [[URL]] into URL unless URL contains parenthesis or spaces? ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 16:27 ` Nicolas Goaziou @ 2018-05-10 19:58 ` Samuel Wales 2018-05-12 23:35 ` Samuel Wales 2018-05-10 19:59 ` Michael Brand 1 sibling, 1 reply; 21+ messages in thread From: Samuel Wales @ 2018-05-10 19:58 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Michael Brand, Org Mode (add-hook 'org-mode-hook 'alpha-eldoc-help-echo-mode) ;; fixme in elisp we want both link eldoc and elisp eldoc (defun hoka-eldoc-help-echo-at-point () "Eldoc thingy for help-echo text properties." (let ((val (get-text-property (point) 'help-echo))) val)) (defun alpha-eldoc-help-echo-mode () "Enable eldoc mode with e.g. org links to display in minibuffer when cursor is over them. Call in the relevant buffer. M-x eldoc-mode to turn off." (interactive) (eval-when-compile (require 'eldoc)) (setq-local eldoc-documentation-function 'hoka-eldoc-help-echo-at-point) (eldoc-mode)) On 5/10/18, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > Michael Brand <michael.ch.brand@gmail.com> writes: > >> Only when I can see the brackets of case 3 in Org rendered as >> : [[https://en.wikipedia.org/wiki/Filter]] >> I know that I can change it to >> : https://en.wikipedia.org/wiki/Filter >> for a cleaner view in non-Org tools. >> >> For case 1 I still prefer to see only the link description because I >> prefer to hide a too disturbing URL part most of the times. My example >> for case 1 is only artificial and my actual descriptions will be such >> that it can not be confused with case 2. > > IIUC, you want fontification to make it obvious there are square > brackets in links, so that you know when they can be removed, for > improved readability outside Org. > > If I'm correct, why don't you write a function that normalizes links for > you, so you don't have to bother, e.g., something that turns [[URL]] > into URL unless URL contains parenthesis or spaces? > > -- The Kafka Pandemic: <http://thekafkapandemic.blogspot.com> The disease DOES progress. MANY people have died from it. And ANYBODY can get it at any time. "You’ve really gotta quit this and get moving, because this is murder by neglect." --- <http://www.meaction.net/2017/02/03/pwme-people-with-me-are-being-murdered-by-neglect>. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 19:58 ` Samuel Wales @ 2018-05-12 23:35 ` Samuel Wales 2018-05-13 11:10 ` Eric S Fraga 0 siblings, 1 reply; 21+ messages in thread From: Samuel Wales @ 2018-05-12 23:35 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Michael Brand, Org Mode in case op or anybody else is wondering why i pasted random code, this will show the link location when cursor is over the link. On 5/10/18, Samuel Wales <samologist@gmail.com> wrote: > (add-hook 'org-mode-hook 'alpha-eldoc-help-echo-mode) > ;; fixme in elisp we want both link eldoc and elisp eldoc > (defun hoka-eldoc-help-echo-at-point () > "Eldoc thingy for help-echo text properties." > (let ((val (get-text-property (point) 'help-echo))) > val)) > (defun alpha-eldoc-help-echo-mode () > "Enable eldoc mode with e.g. org links to display in minibuffer > when cursor is over them. Call in the relevant buffer. M-x > eldoc-mode to turn off." > (interactive) > (eval-when-compile (require 'eldoc)) > (setq-local eldoc-documentation-function 'hoka-eldoc-help-echo-at-point) > (eldoc-mode)) ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-12 23:35 ` Samuel Wales @ 2018-05-13 11:10 ` Eric S Fraga 0 siblings, 0 replies; 21+ messages in thread From: Eric S Fraga @ 2018-05-13 11:10 UTC (permalink / raw) To: Samuel Wales; +Cc: Org Mode [-- Attachment #1: Type: text/plain, Size: 318 bytes --] On Saturday, 12 May 2018 at 16:35, Samuel Wales wrote: > in case op or anybody else is wondering why i pasted random code, this > will show the link location when cursor is over the link. Excellent! Thank you very much. Works like a charm. -- Eric S Fraga via Emacs 27.0.50, Org release_9.1.6-591-gee336b [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 194 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 16:27 ` Nicolas Goaziou 2018-05-10 19:58 ` Samuel Wales @ 2018-05-10 19:59 ` Michael Brand 2018-05-11 0:22 ` Nicolas Goaziou 1 sibling, 1 reply; 21+ messages in thread From: Michael Brand @ 2018-05-10 19:59 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Org Mode Hi Nicolas On Thu, May 10, 2018 at 6:27 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > IIUC, you want fontification to make it obvious there are square > brackets in links, so that you know when they can be removed, for > improved readability outside Org. Yes, and generally just to see what is going on in Org with a little bit more details. In the meantime I tried a changed org-activate-links #+begin_example - (visible-start (or (match-beginning 4) (match-beginning 2))) + (visible-start (or (match-beginning 4) start)) - (visible-end (or (match-end 4) (match-end 2)))) + (visible-end (or (match-end 4) end))) #+end_example to show the brackets of case 3/4 always which I even prefer over my earlier proposal of fontification. And org-toggle-link-display can still be used to toggle case 1. Somehow I don't like to hide the brackets for case 3/4 where nothing else is to be hidden. > If I'm correct, why don't you write a function that normalizes links for > you, so you don't have to bother, e.g., something that turns [[URL]] > into URL unless URL contains parenthesis or spaces? The search criteria is more complex because e. g. : https://en.wikipedia.org/wiki/Filter_(signal_processing) does not need brackets. The changed org-activate-links works better for me than an automatic normalization as I don't need and want to change all : [[URL]] now and prefer something similar to lazy evaluation: Change such links only when I stumble upon for some other reason because after bracket removal or replacement with angle brackets I have to interact anyway with org-fill-paragraph and table realignment etc. because I used org-descriptive-links nil before. Michael ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-10 19:59 ` Michael Brand @ 2018-05-11 0:22 ` Nicolas Goaziou 2018-05-11 13:10 ` Nicolas Goaziou 0 siblings, 1 reply; 21+ messages in thread From: Nicolas Goaziou @ 2018-05-11 0:22 UTC (permalink / raw) To: Michael Brand; +Cc: Org Mode Michael Brand <michael.ch.brand@gmail.com> writes: > In the meantime I tried a changed org-activate-links > > #+begin_example > - (visible-start (or (match-beginning 4) (match-beginning 2))) > + (visible-start (or (match-beginning 4) start)) > - (visible-end (or (match-end 4) (match-end 2)))) > + (visible-end (or (match-end 4) end))) > #+end_example If you mean that fontification should show one pair of brackets instead of hiding them all, I suggested it already, users found it added too much cruft. You may want to check ML archives about it. > The search criteria is more complex because e. g. > : https://en.wikipedia.org/wiki/Filter_(signal_processing) > does not need brackets. Of course. The search criteria is : 1. no description, 2. not an internal link, 3. path matches exactly `org-plain-link-re'. I was merely giving you an idea. > The changed org-activate-links works better for me than an automatic > normalization as I don't need and want to change all > : [[URL]] > now and prefer something similar to lazy evaluation: Change such links > only when I stumble upon for some other reason because after bracket > removal or replacement with angle brackets I have to interact anyway > with org-fill-paragraph and table realignment etc. because I used > org-descriptive-links nil before. Your function could take care of filling paragraph and re-aligning table. Anyway, about showing brackets in fontification, see above. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-11 0:22 ` Nicolas Goaziou @ 2018-05-11 13:10 ` Nicolas Goaziou 2018-05-11 13:55 ` Michael Brand 0 siblings, 1 reply; 21+ messages in thread From: Nicolas Goaziou @ 2018-05-11 13:10 UTC (permalink / raw) To: Michael Brand; +Cc: Org Mode Completing myself, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > If you mean that fontification should show one pair of brackets instead > of hiding them all, I suggested it already, users found it added too > much cruft. > > You may want to check ML archives about it. I searched the ML archives about that. It was a thread named [RFC] Change visibility for bracket links in which you participated. It never ended on anything concrete because the involved participants disagreed on the default value -- or, to put it differently, I disagreed with mostly anyone else -- and some users suggested another way to do it, but never implemented their suggestion fully. Anyway, here is an updated patch from the original thread, as a POC. It adds `partial' to `org-descriptive-links'. It isn't complete, as `org-toggle-link-display' should be altered so as to not modify `org-descriptive-links'. Maybe it's time for an old idea revival. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-11 13:10 ` Nicolas Goaziou @ 2018-05-11 13:55 ` Michael Brand 2018-05-11 14:15 ` Nicolas Goaziou 0 siblings, 1 reply; 21+ messages in thread From: Michael Brand @ 2018-05-11 13:55 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Org Mode On Fri, May 11, 2018 at 3:10 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > Completing myself, > > Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > >> If you mean that fontification should show one pair of brackets instead >> of hiding them all, I suggested it already, users found it added too >> much cruft. >> >> You may want to check ML archives about it. > > I searched the ML archives about that. It was a thread named > > [RFC] Change visibility for bracket links > > in which you participated. > > It never ended on anything concrete because the involved participants > disagreed on the default value -- or, to put it differently, I disagreed > with mostly anyone else -- and some users suggested another way to do > it, but never implemented their suggestion fully. Thanks for the hint, found and read it again: http://lists.gnu.org/archive/html/emacs-orgmode/2016-10/msg00136.html To summarize the thread there, the initial proposal there was that the links #+begin_example 1) [[https://en.wikipedia.org/wiki/Filter][Filter (Wikipedia en)]] 2) https://en.wikipedia.org/wiki/Filter 3) [[https://en.wikipedia.org/wiki/Filter]] 4) [[https://en.wikipedia.org/wiki/Filter_(higher-order_function)]] 5) <https://en.wikipedia.org/wiki/Filter_(higher-order_function)> #+end_example are rendered as #+begin_example 1) [Filter (Wikipedia en)] 2) https://en.wikipedia.org/wiki/Filter 3) [https://en.wikipedia.org/wiki/Filter] 4) [https://en.wikipedia.org/wiki/Filter_(higher-order_function)] 5) <https://en.wikipedia.org/wiki/Filter_(higher-order_function)> #+end_example To summarize the thread here: By changing org-activate-links #+begin_example - (visible-start (or (match-beginning 4) (match-beginning 2))) + (visible-start (or (match-beginning 4) start)) - (visible-end (or (match-end 4) (match-end 2)))) + (visible-end (or (match-end 4) end))) #+end_example the links are rendered as #+begin_example 1) Filter (Wikipedia en) 2) https://en.wikipedia.org/wiki/Filter 3) [[https://en.wikipedia.org/wiki/Filter]] 4) [[https://en.wikipedia.org/wiki/Filter_(higher-order_function)]] 5) <https://en.wikipedia.org/wiki/Filter_(higher-order_function)> #+end_example which for me is the exact right amount of show and hide of _both_ bracket pairs and URL for all cases 1..5 in all my use cases. Inclusive org-toggle-link-display to toggle only case 1. For me this is the better solution than my initial idea of different faces for the different cases. Not at least because aligned tables and filled paragraphs with links like #+begin_example [[abbrev:123]] #+end_example are aligned and filled also in non-Org tools. (For the last reason I use links of case 1 almost never in filled paragraphs, almost only in un-filled paragraphs with Visual Line mode. In filled paragraphs I avoid case 1 by using case 2 (or if necessary 4 or 5) and if helpful prepend a "description" just as Org-semantically normal text, separated from the URL with whitespace.) I will continue to use this change in my local branch. > Anyway, here is an updated patch from the original thread, as a POC. It > adds `partial' to `org-descriptive-links'. It isn't complete, as > `org-toggle-link-display' should be altered so as to not modify > `org-descriptive-links'. Do you mean here attached and updated as of today? > Maybe it's time for an old idea revival. Currently we disagree in that you suggest one bracket where I prefer none for descriptive links and you suggest one bracket where I prefer two for the other cases, see rendering examples and my reasons for raw plain text in non-Org tools above. If there would be an option to show 0 (current behavior), 1 (your suggestion) or 2 brackets (new) everywhere I could use 2 as a compromise. If the option 0, 1 or 2 would be individual for case 1 and for case 3/4 that would of course be perfect at least for me. Michael ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-11 13:55 ` Michael Brand @ 2018-05-11 14:15 ` Nicolas Goaziou 2018-05-12 8:12 ` Michael Brand 0 siblings, 1 reply; 21+ messages in thread From: Nicolas Goaziou @ 2018-05-11 14:15 UTC (permalink / raw) To: Michael Brand; +Cc: Org Mode [-- Attachment #1: Type: text/plain, Size: 1047 bytes --] Michael Brand <michael.ch.brand@gmail.com> writes: > Do you mean here attached and updated as of today? I meant to attach it, but apparently forgot. I attach it here for other feedback. > Currently we disagree in that you suggest one bracket where I prefer > none for descriptive links and you suggest one bracket where I prefer > two for the other cases, see rendering examples and my reasons for raw > plain text in non-Org tools above. Indeed, we disagree. I find your suggestion not predictable enough. Sometimes square brackets appear, sometimes not... Besides, it doesn't solve the issue my suggestion was initially trying to solve. > If there would be an option to show 0 (current behavior), 1 (your > suggestion) or 2 brackets (new) everywhere I could use 2 as > a compromise. If the option 0, 1 or 2 would be individual for case > 1 and for case 3/4 that would of course be perfect at least for me. It's a matter of taste. Showing 2 square brackets doesn't bring much value, IMO. Anyway, we might need more feedback on the topic. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: partial link visibility --] [-- Type: text/x-diff, Size: 1347 bytes --] From 9e49be14b86a359cd4ea834763c697349eba0d2f Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <mail@nicolasgoaziou.fr> Date: Fri, 11 May 2018 14:59:33 +0200 Subject: [PATCH] Add `partial' to `org-descriptive-link' * lisp/org.el (org-activate-links): Handle `partial' value. --- lisp/org.el | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 2cfe46697..bf1e19f36 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5914,8 +5914,17 @@ This includes angle, plain, and bracket links." ,(or (org-link-get-parameter type :display) 'org-link)) properties)) - (visible-start (or (match-beginning 4) (match-beginning 2))) - (visible-end (or (match-end 4) (match-end 2)))) + (visible-start + (pcase org-descriptive-links + (`nil start) + (`partial (or (match-beginning 3) + (1- (match-beginning 2)))) + (_ (or (match-beginning 4) (match-beginning 2))))) + (visible-end + (pcase org-descriptive-links + (`nil end) + (`partial (or (match-end 3) (1+ (match-end 2)))) + (_ (or (match-end 4) (match-end 2)))))) (add-text-properties start visible-start hidden) (add-text-properties visible-start visible-end properties) (add-text-properties visible-end end hidden) -- 2.17.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-11 14:15 ` Nicolas Goaziou @ 2018-05-12 8:12 ` Michael Brand 2018-05-17 16:17 ` Michael Brand 0 siblings, 1 reply; 21+ messages in thread From: Michael Brand @ 2018-05-12 8:12 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Org Mode [-- Attachment #1: Type: text/plain, Size: 327 bytes --] Hi Nicolas Thank you for the patch. I changed it (attached) to something that preserves org-toggle-link-display and allows more different configs for more different usages, please see the docstring of org-link-brackets. I tried it out with org-toggle-link-display and for org-link-brackets '(0 0), '(1 1) and '(0 2). Michael [-- Attachment #2: org-link-brackets.diff --] [-- Type: application/octet-stream, Size: 2064 bytes --] diff --git a/lisp/org.el b/lisp/org.el index 2cfe466..261d5ed 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -1897,6 +1897,28 @@ You can interactively set the value of this variable by calling :group 'org-link :type 'boolean) +(defcustom org-link-brackets '(0 0) + "Number of bracket pairs shown while `org-descriptive-links' is t. + +The first element is for descriptive links and can be 0 or 1. The +second element is for non-descriptive links and can be 0, 1 or 2. + +Value examples: + +'(1 1) can be useful for a better navigation and editing +experience at the beginning and end of a link. + +'(0 2) can be useful to get the same table alignment and +paragraph filling for non-descriptive links as in Org also in +non-Org tools. For descriptive links this is not possible, +therefore in this example the default 0." + + ;; TODO: Type and value check for customization. + ;; TODO: Just a list was simple for a first step but is possibly not + ;; state of the art for such a config. + + :group 'org-link) + (defcustom org-link-file-path-type 'adaptive "How the path name in file links should be stored. Valid values are: @@ -5914,8 +5936,19 @@ This includes angle, plain, and bracket links." ,(or (org-link-get-parameter type :display) 'org-link)) properties)) - (visible-start (or (match-beginning 4) (match-beginning 2))) - (visible-end (or (match-end 4) (match-end 2)))) + (visible-start + (or + ;; For descriptive links. + (match-beginning + (if (zerop (car org-link-brackets)) 4 3)) + ;; For non-descriptive links. + (- (match-beginning 2) (cadr org-link-brackets)))) + (visible-end + (or + ;; For descriptive links. + (match-end (if (zerop (car org-link-brackets)) 4 3)) + ;; For non-descriptive links. + (+ (match-end 2) (cadr org-link-brackets))))) (add-text-properties start visible-start hidden) (add-text-properties visible-start visible-end properties) (add-text-properties visible-end end hidden) ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: Link "bracket-types" 2018-05-12 8:12 ` Michael Brand @ 2018-05-17 16:17 ` Michael Brand 0 siblings, 0 replies; 21+ messages in thread From: Michael Brand @ 2018-05-17 16:17 UTC (permalink / raw) To: Org Mode Hi all On Sat, May 12, 2018 at 10:12 AM, Michael Brand <michael.ch.brand@gmail.com> wrote: > Thank you for the patch. I changed it (attached) to something that > preserves org-toggle-link-display and allows more different configs > for more different usages, please see the docstring of > org-link-brackets. I tried it out with org-toggle-link-display and for > org-link-brackets '(0 0), '(1 1) and '(0 2). Another use case for playing with org-link-brackets config: In my opinion the underline in the org-link face makes descriptive links with many words less readable. Currently I try out underline turned off. To compensate for the missing indication of beginning and end of adjacent descriptive links I changed org-link-brackets from my previous '(0 2) to '(1 2) to get 1 bracket pair around descriptive links. For those interested in readability: Put the following without the #-lines in an empty Org buffer (with the default face for org-link and underline) and try to read as fast as possible. #+begin_example ---- 8< ---- cut here ---- 8< ---- 1) TIHS IS RAEADLBE BCUSEAE TEH HUAMN MNID DEOS NTO RAED ERVEY LTETER BY ISTLEF, BTU TEH WROD AS A WLOHE 2) [[http://example.com][Tihs is raeadlbe bcuseae teh huamn mnid deos nto raed ervey lteter by istlef, btu teh wrod as a wlohe]] 3) _Tihs is raeadlbe bcuseae teh huamn mnid deos nto raed ervey lteter by istlef, btu teh wrod as a wlohe_ 4) Tihs is raeadlbe bcuseae teh huamn mnid deos nto raed ervey lteter by istlef, btu teh wrod as a wlohe ---- 8< ---- cut here ---- 8< ---- #+end_example To my understanding underline and UPPERCASE decrease readability because they affect the bouma. http://en.wikipedia.org/wiki/Bouma michael ʅǝɐɥɔᴉɯ ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2018-05-17 16:17 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-05-10 6:08 Link "bracket-types" Michael Brand 2018-05-10 8:14 ` Nicolas Goaziou 2018-05-10 8:32 ` Eric S Fraga 2018-05-11 12:34 ` Nicolas Goaziou 2018-05-11 13:20 ` Eric S Fraga 2018-05-10 9:41 ` Michael Brand 2018-05-10 12:44 ` Nicolas Goaziou 2018-05-10 13:23 ` Michael Brand 2018-05-10 13:33 ` Nicolas Goaziou 2018-05-10 14:29 ` Michael Brand 2018-05-10 16:27 ` Nicolas Goaziou 2018-05-10 19:58 ` Samuel Wales 2018-05-12 23:35 ` Samuel Wales 2018-05-13 11:10 ` Eric S Fraga 2018-05-10 19:59 ` Michael Brand 2018-05-11 0:22 ` Nicolas Goaziou 2018-05-11 13:10 ` Nicolas Goaziou 2018-05-11 13:55 ` Michael Brand 2018-05-11 14:15 ` Nicolas Goaziou 2018-05-12 8:12 ` Michael Brand 2018-05-17 16:17 ` Michael Brand
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).