1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ;;; This file contains several examples of how to set up emacs and/or xemacs
4 ;;; to edit PostgreSQL code.
6 ;;; Whichever set you choose would go in your .emacs file or equivalent.
8 ;;; You only need one of these.
10 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
13 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15 ;;; This set is known to work with old versions of emacs
18 (cons '("\\(postgres\\|pgsql\\).*\\.[ch]\\'" . pgsql-c-mode)
21 (cons '("\\(postgres\\|pgsql\\).*\\.cc\\'" . pgsql-c-mode)
24 (defun pgsql-c-mode ()
25 ;; sets up formatting for PostgreSQL C code
28 (setq-default tab-width 4)
29 (c-set-style "bsd") ; set c-basic-offset to 4, plus other stuff
30 (c-set-offset 'case-label '+) ; tweak case indent to match PG custom
31 (setq indent-tabs-mode t)) ; make sure we keep tabs when indenting
34 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36 ;;; Similar approach, known to work with xemacs
37 ;;; Use of a named style makes it easy to use the style elsewhere
41 (indent-tabs-mode . t)
47 nil ) ; t = set this mode, nil = don't
49 (defun pgsql-c-mode ()
55 (cons '("\\(postgres\\|pgsql\\).*\\.[chyl]\\'" . pgsql-c-mode)
58 (cons '("\\(postgres\\|pgsql\\).*\\.cc\\'" . pgsql-c-mode)
61 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63 ;;; Slightly different approach - use a hook instead of a mode
65 (add-hook 'c-mode-hook
68 (if (string-match "pgsql" buffer-file-name)
71 (setq c-basic-offset 4)
73 (c-set-offset 'case-label '+)
74 (setq indent-tabs-mode t)
78 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;