emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Dragging URLs to an org buffer
@ 2006-10-03 17:27 Piotr Zielinski
  2006-10-04 11:58 ` Carsten Dominik
  0 siblings, 1 reply; 4+ messages in thread
From: Piotr Zielinski @ 2006-10-03 17:27 UTC (permalink / raw)
  To: emacs-orgmode

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

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

end of thread, other threads:[~2006-10-04 15:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-10-03 17:27 Dragging URLs to an org buffer Piotr Zielinski
2006-10-04 11:58 ` Carsten Dominik
2006-10-04 15:30   ` Piotr Zielinski
2006-10-04 15:57     ` Carsten Dominik

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