summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMats Lidell <matsl@rockbox.org>2003-01-22 23:01:10 +0000
committerMats Lidell <matsl@rockbox.org>2003-01-22 23:01:10 +0000
commit1b71742d358ce37797dbc7390306de9461148471 (patch)
treee059c79dd8cccd18ab5d5382e73806c8e9e8c61c /tools
parent8f1d3c944b509874be07a1f12387de37adf12626 (diff)
downloadrockbox-1b71742d358ce37797dbc7390306de9461148471.tar.gz
rockbox-1b71742d358ce37797dbc7390306de9461148471.tar.bz2
rockbox-1b71742d358ce37797dbc7390306de9461148471.zip
Added support for supporting multiple project by using a predicate
hook pair list. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3152 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'tools')
-rw-r--r--tools/sample.emacs40
1 files changed, 37 insertions, 3 deletions
diff --git a/tools/sample.emacs b/tools/sample.emacs
index 41a59acff3..53b75fd907 100644
--- a/tools/sample.emacs
+++ b/tools/sample.emacs
@@ -1,10 +1,44 @@
;; $Id$ -*- emacs-lisp -*-
;; Here's a sample .emacs file that might help you along the way.
-;; Just copy this region and paste it into your .emacs file. You
-;; might not want to use this if you already use c-mode-hooks for
-;; other styles.
+
+;; First comes a setup that is ideal when you are only working with
+;; rockbox. Just select the next few lines, paste it into your .emacs
+;; and change the path to the tools folder. (If you are using more
+;; than one style. Look further down the this file.)
(load-file "<YOUR-PATH-TO-ROCKBOX>/tools/rockbox-style.el")
(add-hook 'c-mode-common-hook 'rockbox-c-mode-common-hook)
+;; If you are using more than one style in maybe more than one project
+;; the example below might help out. It uses a predicate hook pair to
+;; select the right hook to use.
+
+(defvar my-style-selective-mode-hook nil
+ "Holds a list of predicate and hooks pairs. (list (PREDICATE . HOOK)
+...) It is used by my-mode-selective-mood-hook-function for choosing
+the right hook to run.")
+
+(defun my-style-selective-mode-hook-function ()
+ "Run each PREDICATE in `my-style-selective-mode-hook' to see if the
+HOOK in the pair should be executed. If the PREDICATE evaluate to non
+nil HOOK is executed and the rest of the hooks are ignored."
+ (let ((h my-style-selective-mode-hook))
+ (while (not (eval (caar h)))
+ (setq h (cdr h)))
+ (funcall (cdar h))))
+
+;;; Example configuration.
+;; Add the selective hook to the c-mode-common-hook
+(add-hook 'c-mode-common-hook 'my-style-selective-mode-hook-function)
+
+;; Add your own hooks and predicates. The predicate should evaluate to
+;; non nil if the hook in the pair is supposed to be evaluated. In the
+;; example a part of the path is used to select what style to
+;; use. Choose what is appropriate for you.
+(add-hook 'my-style-selective-mode-hook
+ '((string-match "rockbox" (buffer-file-name)) . rockbox-c-mode-common-hook))
+(add-hook 'my-style-selective-mode-hook
+ '((string-match "other" (buffer-file-name)) . other-c-mode-common-hook))
+;; Make sure the default style is appended.
+(add-hook 'my-style-selective-mode-hook '(t . my-c-mode-common-hook) t)