emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [yasnippet] can not creating links with description
@ 2011-08-08 20:46 Karl Voit
  2011-08-09 15:05 ` Bianca Lutz
  0 siblings, 1 reply; 4+ messages in thread
From: Karl Voit @ 2011-08-08 20:46 UTC (permalink / raw)
  To: emacs-orgmode

Hi!

I'd like to create a link like

  [[file:~/share/all/org-mode/contacts.org::*foo][company:foo]]

... and therefore I created:

,----[ ~/snippets/org-mode/vkcomp ]
| # name : expand link to company
| # --
| [[file:~/share/all/org-mode/contacts.org::*$1][company:$1]] $0
`----

But: unfortunately my Org-mode behaves strangely when applying the
snippet: "company:" with blinking cursor in the «c» which does not
let me enter the string which replaces «$1».

I guess this is related to «hiding the actual link when a
description is set».

Can I define a snippet which behaves like following? After entering
the snippet command and pressing TAB, I get the chance to type «foo»
part and after another TAB, the link as stated above is finished and
the cursor is at the end.

Thanks!

-- 
Karl Voit

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [yasnippet] can not creating links with description
  2011-08-08 20:46 [yasnippet] can not creating links with description Karl Voit
@ 2011-08-09 15:05 ` Bianca Lutz
  2011-08-09 15:40   ` Bianca Lutz
  2011-08-10 14:28   ` Karl Voit
  0 siblings, 2 replies; 4+ messages in thread
From: Bianca Lutz @ 2011-08-09 15:05 UTC (permalink / raw)
  To: news1142; +Cc: emacs-orgmode

Hi Karl,

I do not know how to accomplish this with a single field but the
following workaround might be sufficient:

,----[ ~/snippets/org-mode/vkcomp ]
| # name : expand link to company
| # --
| [[file:~/share/all/org-mode/contacts.org::*$1][${2:$$(unless yas/modified-p
|  (let ((field (nth 0 (yas/snippet-fields (first (yas/snippets-at-point))))))
|    (concat "companie: "
|            (and field (buffer-substring
|                           (yas/field-start field)
|                           (yas/field-end field))))))]] $0
`----

As long as the first field is active the second one is empty, thus, no
troublesome link hiding will occur. As I said, this isn't exactly what
you were asking for, since you have to press TAB a second time to
actually exit the snippet.

Best regards,
Bianca.


On Mon, Aug 8, 2011 at 10:46 PM, Karl Voit <devnull@karl-voit.at> wrote:
> Hi!
>
> I'd like to create a link like
>
>  [[file:~/share/all/org-mode/contacts.org::*foo][company:foo]]
>
> ... and therefore I created:
>
> ,----[ ~/snippets/org-mode/vkcomp ]
> | # name : expand link to company
> | # --
> | [[file:~/share/all/org-mode/contacts.org::*$1][company:$1]] $0
> `----
>
> But: unfortunately my Org-mode behaves strangely when applying the
> snippet: "company:" with blinking cursor in the «c» which does not
> let me enter the string which replaces «$1».
>
> I guess this is related to «hiding the actual link when a
> description is set».
>
> Can I define a snippet which behaves like following? After entering
> the snippet command and pressing TAB, I get the chance to type «foo»
> part and after another TAB, the link as stated above is finished and
> the cursor is at the end.
>
> Thanks!
>
> --
> Karl Voit
>
>
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [yasnippet] can not creating links with description
  2011-08-09 15:05 ` Bianca Lutz
@ 2011-08-09 15:40   ` Bianca Lutz
  2011-08-10 14:28   ` Karl Voit
  1 sibling, 0 replies; 4+ messages in thread
From: Bianca Lutz @ 2011-08-09 15:40 UTC (permalink / raw)
  To: news1142; +Cc: emacs-orgmode

I just realized that the test for field being non-nil is superfluous
in the example below -- the usual copy and paste mess got me. Thus,
you may omit it, i.e. use

(concat "companie: " (buffer-substring ...))

instead of

(concat "companie: " (and field (buffer-substring ...)))

Bianca.

On Tue, Aug 9, 2011 at 5:05 PM, Bianca Lutz <bialut@googlemail.com> wrote:
> Hi Karl,
>
> I do not know how to accomplish this with a single field but the
> following workaround might be sufficient:
>
> ,----[ ~/snippets/org-mode/vkcomp ]
> | # name : expand link to company
> | # --
> | [[file:~/share/all/org-mode/contacts.org::*$1][${2:$$(unless yas/modified-p
> |  (let ((field (nth 0 (yas/snippet-fields (first (yas/snippets-at-point))))))
> |    (concat "companie: "
> |            (and field (buffer-substring
> |                           (yas/field-start field)
> |                           (yas/field-end field))))))]] $0
> `----
>
> As long as the first field is active the second one is empty, thus, no
> troublesome link hiding will occur. As I said, this isn't exactly what
> you were asking for, since you have to press TAB a second time to
> actually exit the snippet.
>
> Best regards,
> Bianca.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [yasnippet] can not creating links with description
  2011-08-09 15:05 ` Bianca Lutz
  2011-08-09 15:40   ` Bianca Lutz
@ 2011-08-10 14:28   ` Karl Voit
  1 sibling, 0 replies; 4+ messages in thread
From: Karl Voit @ 2011-08-10 14:28 UTC (permalink / raw)
  To: emacs-orgmode

* Bianca Lutz <bialut@googlemail.com> wrote:
> Hi Karl,

Hi!

> I do not know how to accomplish this with a single field but the
> following workaround might be sufficient:

This works great! Thank you for the code!

-- 
Karl Voit

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-08-10 14:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-08 20:46 [yasnippet] can not creating links with description Karl Voit
2011-08-09 15:05 ` Bianca Lutz
2011-08-09 15:40   ` Bianca Lutz
2011-08-10 14:28   ` Karl Voit

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).