all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* How to activate hook for a specific buffer...?
@ 2018-04-25 19:48 Carlo Tambuatco
  0 siblings, 0 replies; 3+ messages in thread
From: Carlo Tambuatco @ 2018-04-25 19:48 UTC (permalink / raw)
  To: help-gnu-emacs

I’ve got some setup code for my org mode in emacs: 

(defun org-summary-todo (n-done n-not-done)
  "Switch entry to DONE when all subentries are done, to TODO otherwise."
  (let (org-log-done org-log-states)   ; turn off logging
    (org-todo (if (= n-not-done 0) "DONE" "TODO"))))

(add-hook 'org-after-todo-statistics-hook 'org-summary-todo nil t)

that I want to run only in specific org buffers. I do not want to set this globally. I do not want to turn off
logging globally for all org buffers.

This code will set TODO entries in an org buffer to DONE when all children of the entry are DONE.

This snippet is taken directly from the org manual website:
https://orgmode.org/manual/Breaking-down-tasks.html#Breaking-down-tasks

I want this to apply only to certain org buffers and to have it apply to those certain buffers automatically 
whenever I open those buffers.

Do I place this code inside a #+STARTUP: tag, or inside some 

#+BEGIN_SRC
#+END_SRC

tags…? 

Is there a better way to do this? 

Thanks.

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

* Re: How to activate hook for a specific buffer...?
       [not found] <mailman.12980.1524688900.27995.help-gnu-emacs@gnu.org>
@ 2018-04-26  7:32 ` Ralf Fassel
  2018-04-27 17:01 ` Emanuel Berg
  1 sibling, 0 replies; 3+ messages in thread
From: Ralf Fassel @ 2018-04-26  7:32 UTC (permalink / raw)
  To: help-gnu-emacs

* Carlo Tambuatco <oraclmaster@gmail.com>
| I’ve got some setup code for my org mode in emacs: 
>
| (defun org-summary-todo (n-done n-not-done)
|   "Switch entry to DONE when all subentries are done, to TODO otherwise."
|   (let (org-log-done org-log-states)   ; turn off logging
|     (org-todo (if (= n-not-done 0) "DONE" "TODO"))))
>
| (add-hook 'org-after-todo-statistics-hook 'org-summary-todo nil t)
>
| that I want to run only in specific org buffers. I do not want to set
| this globally. I do not want to turn off logging globally for all org
| buffers.

Change the function so it checks the current buffer and only apply the
'let' if the check yields 't.  Either make a list of those buffers, or
have a special naming convention for those buffers ("starting with
xyz-"), or set a buffer-local variable in the local-variables-section
(assuming the org-buffer is loaded from a plain text file where you can
add lisp-local-variables) and check that in the hook...

I would not put actual code to execute inside the files for obvious
security reasons...

HTH
R'


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

* Re: How to activate hook for a specific buffer...?
       [not found] <mailman.12980.1524688900.27995.help-gnu-emacs@gnu.org>
  2018-04-26  7:32 ` Ralf Fassel
@ 2018-04-27 17:01 ` Emanuel Berg
  1 sibling, 0 replies; 3+ messages in thread
From: Emanuel Berg @ 2018-04-27 17:01 UTC (permalink / raw)
  To: help-gnu-emacs

Carlo Tambuatco wrote:

> that I want to run only in specific org
> buffers.

Use `when' first in the hook to check if it is
that kind of buffer. If it isn't, nothing will
happen which is what you want.

-- 
underground experts united
http://user.it.uu.se/~embe8573


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

end of thread, other threads:[~2018-04-27 17:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-25 19:48 How to activate hook for a specific buffer...? Carlo Tambuatco
     [not found] <mailman.12980.1524688900.27995.help-gnu-emacs@gnu.org>
2018-04-26  7:32 ` Ralf Fassel
2018-04-27 17:01 ` Emanuel Berg

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.