From 1b71742d358ce37797dbc7390306de9461148471 Mon Sep 17 00:00:00 2001 From: Mats Lidell Date: Wed, 22 Jan 2003 23:01:10 +0000 Subject: 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 --- tools/sample.emacs | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) (limited to 'tools/sample.emacs') 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 "/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) -- cgit v1.2.3