[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] Dragging URLs to an org buffer
From: |
Piotr Zielinski |
Subject: |
[Orgmode] Dragging URLs to an org buffer |
Date: |
Tue, 3 Oct 2006 19:27:03 +0200 |
Hi,
Here's a piece of elisp that allows you to drag URLs from a webbrowser
(or other apps) to an org buffer. If the current line looks like
+ this is an existing item
Then releasing a drag to the left of "+" will insert the URL before:
+ http://www.dragged.url
+ this is an existing item
Releasing on the text "+ this is an existing item" will insert the URL after:
+ this is an existing item
+ http://www.dragged.url
Releasing to the right of the text will produce:
+ this is an existing item: http://www.dragged.url
Any suggestions welcome. The functionality is now part of org-mouse
(I think it requires Emacs 22):
http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el
Alternatively, here's the elisp code
(defadvice dnd-insert-text (around org-mouse-dnd-insert-text activate)
(if (eq major-mode 'org-mode)
(progn
(cond
;; if this is the end of the line then just insert text here
((eolp)
(skip-chars-backward " \t")
(kill-region (point) (point-at-eol))
(unless (looking-back ":") (insert ":"))
(insert " "))
;; if this is the beginning of the line then insert before
((and (looking-at " \\|\t")
(save-excursion
(skip-chars-backward " \t") (bolp)))
(beginning-of-line)
(looking-at "[ \t]*")
(open-line 1)
(indent-to (- (match-end 0) (match-beginning 0)))
(insert "+ "))
;; if this is a middle of the line, then insert after
(t
(end-of-line)
(newline t)
(indent-relative)
(insert "+ ")))
(insert text)
(beginning-of-line))
ad-do-it))
Piotr
- [Orgmode] Dragging URLs to an org buffer,
Piotr Zielinski <=