emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Lists for org-refile-targets


From: Nathan Neff
Subject: Re: [Orgmode] Lists for org-refile-targets
Date: Fri, 4 Dec 2009 13:17:03 -0600



On Fri, Dec 4, 2009 at 1:03 PM, Nick Dokos <address@hidden> wrote:
Nathan Neff <address@hidden> wrote:

> On Fri, Dec 4, 2009 at 10:45 AM, Nick Dokos <address@hidden> wrote:
>
>     Nathan Neff <address@hidden> wrote:
>
>     > Currently, I'm getting an error when I try to refile my notes
>     > and I think it's something very basic.
>     >
>     > Here's the relevant code:
>     >
>     > ;; Use environment variable $ORGDIR to get dir for org-directory
>     > (setq org-directory (getenv "ORGDIR"))
>     > (setq notesmine-dir "~/Documents/notesmine-org")
>     >
>     > (setq org-agenda-files (file-expand-wildcards (concat org-directory "/*.org")))
>     > (setq notesmine-files (file-expand-wildcards (concat notesmine-dir "/*.org")))
>     >
>     > ; Targets include this file and any file contributing to the agenda - up to 5 levels deep
>     > (setq org-refile-targets
>     >   (quote
>     >     (
>     >       (org-agenda-files :maxlevel . 5)
>     >       (notesmine-files :maxlevel . 5)
>     >       (nil :maxlevel . 5)
>     >     )
>     >   )
>     > )
>     >
>     > I've tried concatenating org-agenda-files and notesmine-files, but I keep getting errors
>     > when trying to refile.  The error that I get is:
>     > "Wrong type argument, numberp (0.5)"
>     >
>     > I can provide a stack trace, but I don't think this is a bug -- I just think that
>     > I'm not concatenating the list of files that I want to use in org-refile-targets
>     > correctly.
>     >
>
>     [A stacktrace is always useful. It doesn't matter whether it's a bug in org or in
>     your code: it can help narrow down the problem]
>
>     I suspect that the last line is the problem:
>
>     >       (nil :maxlevel . 5)
>
>     What happens if you delete it?
>
>     HTH,
>     Nick
>
> I still get the "Wrong type argument: numberp, (0.5)" error.
>
> Here's the stacktrace:
>
> Debugger entered--Lisp error: (wrong-type-argument numberp (0.5))
>   number-to-string((0.5))
>   (concat "^\\*\\{1," (number-to-string (if org-odd-levels-only ... ...)) "\\}[     ]")
>   (setq descre (concat "^\\*\\{1," (number-to-string ...) "\\}[     ]"))
>   (cond ((eq ... :tag) (setq descre ...)) ((eq ... :todo) (setq descre ...)) ((eq ... :regexp) (setq descre ...)) ((eq ... :level) (setq descre ...))
> ((eq ... :maxlevel) (setq fast-path-p t) (setq descre ...)) (t (error "Bad refiling target description %s" desc)))
>   (while (setq entry (pop entries)) (setq files (car entry) desc (cdr entry)) (setq fast-path-p nil) (cond (... ...) (... ...) (... ...) (... ...)) (if
> (stringp files) (setq files ...)) (cond (... ...) (... ...) (... ...) (... ...) (... ... ...) (t ...)) (while (setq f ...) (with-current-buffer ... ...
> ... ... ...)))
>   (save-current-buffer (set-buffer (or default-buffer ...)) (while (setq entry ...) (setq files ... desc ...) (setq fast-path-p nil) (cond ... ... ...
> ...) (if ... ...) (cond ... ... ... ... ... ...) (while ... ...)))
>   (with-current-buffer (or default-buffer (current-buffer)) (while (setq entry ...) (setq files ... desc ...) (setq fast-path-p nil) (cond ... ... ...
> ...) (if ... ...) (cond ... ... ... ... ... ...) (while ... ...)))
>   (let ((case-fold-search nil) (entries ...) targets txt re files f desc descre fast-path-p level pos0) (message "Getting targets...")
> (with-current-buffer (or default-buffer ...) (while ... ... ... ... ... ... ...)) (message "Getting targets...done") (nreverse targets))
>   org-get-refile-targets(#<buffer notes.org>)
>   (setq org-refile-target-table (org-get-refile-targets default-buffer))
>   (let ((org-refile-targets org-refile-targets) (org-refile-use-outline-path org-refile-use-outline-path)) (setq org-refile-target-table
> (org-get-refile-targets default-buffer)))
>   org-refile-get-location("Refile to: " #<buffer notes.org> nil)
>   (or rfloc (org-refile-get-location (if goto "Goto: " "Refile to: ") buffer org-refile-allow-creating-parent-nodes))
>   (let* ((marker ...) (buffer ...) (pos ...) (rfloc ...)) (with-current-buffer buffer (save-excursion ...)))
>   (if (equal goto (quote ...)) (org-refile-goto-last-stored) (let* (... ... ... ...) (with-current-buffer buffer ...)))
>   org-agenda-refile(nil)
>   call-interactively(org-agenda-refile nil nil)
>

Are you sure you have not omitted a space after a period somewhere?
(nil :maxfile . 5) is very different from (nil :maxfile .5).
What is the value of org-refile-targets?

Other than that, I can't see anything wrong in the code (and I think the
(nil :maxlevel 5) part is legal), so I think you'll need to do some
debugging.  The code in questions is around line 8973 in org.el and
looks like this:

        ((eq (car desc) :maxlevel)
         (setq fast-path-p t)
         (setq descre (concat "^\\*\\{1," (number-to-string
                                           (if org-odd-levels-only
                                               (1- (* 2 (cdr desc)))
                                             (cdr desc)))
                              "\\}[ \t]")))

I would suggest that you add a call to debug:

        ((eq (car desc) :maxlevel)
         (setq fast-path-p t)
         (debug)
         (setq descre (concat "^\\*\\{1," (number-to-string
                                           (if org-odd-levels-only
                                               (1- (* 2 (cdr desc)))
                                             (cdr desc)))
                              "\\}[ \t]")))

Load the org.el file explicitly:

M-x load-file <RET> /path/to/org.el <RET>

and then try your refile. When  it drops into the debugger, you can
say "e" and type an _expression_ to be evaluated into the minibuffer.
E.g. e desc <RET> --> (:maxfile . 5) but if it looks like this
(:maxfile .5) watch out!


Nick -- thank you very much.  The problem was that I had no space between the period and the 5 on line two below:


(org-agenda-files :maxlevel . 5)
;;BAD
(notesmine-files :maxlevel . 5)
 
I will keep your debugging advice for the next time --
hopefully I'll be able to find these kinds of problems before
pinging the list.

Thanks again,
--Nate
HTH,
Nick


reply via email to

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