emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Bug: Problem with hook added to org-mode-hook [8.2.6 (release_8.2.6-1 @ /usr/local/share/emacs/24.4.50/lisp/org/)]
@ 2014-07-14  6:24 Tianxiang Xiong
  2014-07-28  9:25 ` Bastien
  0 siblings, 1 reply; 2+ messages in thread
From: Tianxiang Xiong @ 2014-07-14  6:24 UTC (permalink / raw)
  To: emacs-orgmode


Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.  You don't know how to make a good report?  See

     http://orgmode.org/manual/Feedback.html#Feedback

Your bug report will be posted to the Org-mode mailing list.
------------------------------------------------------------------------

I'm organizing my init file as an init.org file that I will then tangle
into init.el.

I want to define an after-save-hook that applies only to org-mode. I
used the following:

(add-hook 'org-mode-hook
          (lambda ()
             (add-hook 'after-save-hook 'tangle-init nil t)))

However, when I open my init.org file, I see that the after-save-hook
variable is nil. If I manually reapply org-mode, however, it works as
expected.

Why is it that when I simply open an org file, the hook function is not
applied?

At least one other individual has been able to reproduce the problem:
http://www.reddit.com/r/emacs/comments/2alwnd/hook_for_major_mode/

------------------------------------------------------------------------
Emacs  : GNU Emacs 24.4.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.9)
 of 2014-07-08 on localhost.localdomain
Package: Org-mode version 8.2.6 (release_8.2.6-1 @ /usr/local/share/emacs/24.4.50/lisp/org/)

current state:
==============
(setq
 org-tab-first-hook '(org-hide-block-toggle-maybe org-src-native-tab-command-maybe
		      org-babel-hide-result-toggle-maybe org-babel-header-arg-expand)
 org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-command-hook)
 org-occur-hook '(org-first-headline-recenter)
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-confirm-shell-link-function 'yes-or-no-p
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer)
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-babel-pre-tangle-hook '(save-buffer)
 org-mode-hook '((lambda nil (add-hook (quote after-save-hook) (quote tangle-init) nil t))
		 #[nil "\300\301\302\303\304$\207"
		   [org-add-hook change-major-mode-hook org-show-block-all append local] 5]
		 #[nil "\300\301\302\303\304$\207"
		   [org-add-hook change-major-mode-hook org-babel-show-result-all append local] 5]
		 org-babel-result-hide-spec org-babel-hide-all-hashes turn-on-auto-fill
		 #[nil "\300\301\302\303\304$\207" [add-hook after-save-hook tangle-init nil t] 5])
 org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe)
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-hide-inline-tasks
		  org-cycle-show-empty-lines org-optimize-window-after-visibility-change)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
 )

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

* Re: Bug: Problem with hook added to org-mode-hook [8.2.6 (release_8.2.6-1 @ /usr/local/share/emacs/24.4.50/lisp/org/)]
  2014-07-14  6:24 Bug: Problem with hook added to org-mode-hook [8.2.6 (release_8.2.6-1 @ /usr/local/share/emacs/24.4.50/lisp/org/)] Tianxiang Xiong
@ 2014-07-28  9:25 ` Bastien
  0 siblings, 0 replies; 2+ messages in thread
From: Bastien @ 2014-07-28  9:25 UTC (permalink / raw)
  To: Tianxiang Xiong; +Cc: emacs-orgmode

Hi Tianxiang,

Tianxiang Xiong <tianxiang.xiong@gmail.com> writes:

> (add-hook 'org-mode-hook
>           (lambda ()
>              (add-hook 'after-save-hook 'tangle-init nil t)))
>
> However, when I open my init.org file, I see that the after-save-hook
> variable is nil. If I manually reapply org-mode, however, it works as
> expected.

If you define the hook then kill the buffer containing init.org then
reopens it, you don't need to manually M-x org-mode RET in order for
the hook to be taken into account.  IOW: the hook runs fine, it's
just that your buffer was already in org-mode.

Can you confirm this?

To me

(add-hook 'after-save-hook (lambda ()
  (when (derived-mode-p 'org-mode)
    (tangle-init)))

seems more "natural" anyway.

Thanks,

-- 
 Bastien

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

end of thread, other threads:[~2014-07-28 17:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-14  6:24 Bug: Problem with hook added to org-mode-hook [8.2.6 (release_8.2.6-1 @ /usr/local/share/emacs/24.4.50/lisp/org/)] Tianxiang Xiong
2014-07-28  9:25 ` Bastien

Code repositories for project(s) associated with this 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).