From: Myles English <mylesenglish@gmail.com>
To: nicholas.dokos@hp.com
Cc: emacs-orgmode Mode <emacs-orgmode@gnu.org>
Subject: Re: org-goto-local-search-headings usage?
Date: Wed, 16 May 2012 11:30:41 +0100 [thread overview]
Message-ID: <877gwcl8oe.fsf@gmail.com> (raw)
In-Reply-To: <8896.1337118269@alphaville> (Nick Dokos's message of "Tue, 15 May 2012 17:44:29 -0400")
>> On Tue, 15 May 2012 17:44:29 -0400, Nick Dokos said:
> Nick Dokos wrote:
>> Myles English wrote:
>>
>> > >> On Tue, 15 May 2012 11:48:55 -0400, Nick Dokos said:
>> >
>> > > Myles English wrote:
>> > >>
>> > >> Hi,
>> > >>
>> > >> Can anyone see what I am doing wrong here? I just want to open a file
>> > >> ~/tmp/gtd.org and goto the heading "* My workflow". So, starting like
>> > >> this:
>> > >>
>> > >> emacs -Q -l ~/tmp/gtd
>> > >>
>> > >> with ~/tmp/gtd:
>> > >>
>> > >> (add-to-list 'load-path
>> > >> "~/.emacs.d/plugins/org-mode/lisp")
>> > >> (require 'org-install) ;; to use the emacs-org-mode rather than the one
>> > >> ;; installed with emacs
>> > >>
>> > >> (defun gtd()
>> > >> (interactive)
>> > >> (find-file "~/tmp/gtd.org")
>> > >> (goto-char (point-min))
>> > >> (setq wf "My workflow")
>> > >> (org-goto-local-search-headings wf nil nil)
>> > >> )
>> > >>
>> > >> and ~/tmp/gtd.org:
>> > >>
>> > >> * My workflow
>> > >>
>> > >> then I do:
>> > >>
>> > >> M-x gtd
>> > >>
>> > >> and get the message:
>> > >>
>> > >> byte-code: Search failed: "My workflow"
>> > >>
>> >
>> > > Works for me: the cursor is placed at the end of the headline.
>> > > I tried both with just the one headline and also with half a
>> > > dozen.
>> >
>> > Thanks for taking a look Nick. My real usage also uses a much bigger
>> > file and sometimes it works when the .emacs file is open or if I have
>> > been working in the gtd.org file but I haven't been able to track down
>> > when it works or doesn't. Hence this MWE.
>> >
>> > > Maybe M-x toggle-debug-on-error and try again to get a backtrace?
>> > > Or add
>> >
>> > > (setq debug-on-error t)
>> >
>> > > to your initialization file.
>> >
>> > Adding (setq debug-on-error t) to the top of the file gtd then
>> > proceeding as before gives me the *Backtrace*:
>> >
>> > org-goto-local-search-headings("My workflow" nil nil)
>> > gtd()
>> > call-interactively(gtd t nil)
>> > execute-extended-command(nil)
>> > call-interactively(execute-extended-command nil nil)
>> >
>> > which doesn't even really look like an error, does it?
>> >
>>
>> No, but there are missing stack frames: it fails on the search-backward
>> that org-goto-local-search-headings does. In the best "let's cure the
>> symptom, not the disease" manner, try changing the point-min to
>> point-max in the definition of gtd.
>>
> I meant to comment on the use of isearch-forward inside
> org-goto-local-search-headings. I'm not sure how it changes value (but
> it does), and I really don't understand why org-glsh uses it at all. The
> point is however that depending on the value of isearch-forward and
> where you start in the buffer (min or max), you will get the error if
> the variable is the "wrong" direction for your starting point.
> IOW, you probably don't want to use the org-glsh function: define your
> own that always goes in one direction (forward) and start at min.
> Usual disclaimers apply,
> Nick
Thanks for the advice, I ended up using bit of org-element.el instead of
org-goto-local-search-headings and doing this:
#+BEGIN_SRC elisp
(defun gotoWF(hl)
(let ((title (car (org-element-property :title hl))))
(if (and (stringp title)
(string= title "My workflow"))
(progn (goto-char (org-element-property :begin hl))
(org-show-entry)
(org-show-subtree))
nil)))
(require 'org-element)
(defun gtd()
(interactive)
(org-element-map (org-element-parse-buffer) 'headline 'gotoWF nil t)
(org-agenda-list))
#+END_SRC
--
`--[ Myles ]
next prev parent reply other threads:[~2012-05-16 10:25 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-15 15:28 org-goto-local-search-headings usage? Myles English
2012-05-15 15:48 ` Nick Dokos
2012-05-15 21:09 ` Myles English
2012-05-15 21:33 ` Nick Dokos
2012-05-15 21:44 ` Nick Dokos
2012-05-16 10:30 ` Myles English [this message]
2012-05-16 14:56 ` Nicolas Goaziou
2012-05-16 20:37 ` Myles English
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877gwcl8oe.fsf@gmail.com \
--to=mylesenglish@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=nicholas.dokos@hp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.