From 8dc8f44f588d683ab0af8abb130a7711221f5e21 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 7 Sep 2006 00:10:46 +0000 Subject: [PATCH] Update Emacs/vim editor info. --- doc/src/FAQ/FAQ_DEV.html | 2 +- doc/src/sgml/sources.sgml | 45 +++---------------- src/tools/editors/emacs.samples | 78 +++++++++++++++++++++++++++++++++ src/tools/editors/vim.samples | 18 ++++++++ 4 files changed, 103 insertions(+), 40 deletions(-) create mode 100644 src/tools/editors/emacs.samples create mode 100644 src/tools/editors/vim.samples diff --git a/doc/src/FAQ/FAQ_DEV.html b/doc/src/FAQ/FAQ_DEV.html index 5a99a0badc..d68bf48041 100644 --- a/doc/src/FAQ/FAQ_DEV.html +++ b/doc/src/FAQ/FAQ_DEV.html @@ -370,7 +370,7 @@ less: less -x4 -

The tools directory of the latest sources contains sample +

The tools/editors directory of the latest sources contains sample settings that can be used with the emacs, xemacs and vim editors, that assist in keeping to PostgreSQL coding standards.

diff --git a/doc/src/sgml/sources.sgml b/doc/src/sgml/sources.sgml index 8187f05546..58d5d5635c 100644 --- a/doc/src/sgml/sources.sgml +++ b/doc/src/sgml/sources.sgml @@ -1,4 +1,4 @@ - + PostgreSQL Coding Conventions @@ -21,44 +21,11 @@ - For Emacs, add the following (or - something similar) to your ~/.emacs - initialization file: - - -;; check for files with a path containing "postgres" or "pgsql" -(setq auto-mode-alist - (cons '("\\(postgres\\|pgsql\\).*\\.[ch]\\'" . pgsql-c-mode) - auto-mode-alist)) -(setq auto-mode-alist - (cons '("\\(postgres\\|pgsql\\).*\\.cc\\'" . pgsql-c-mode) - auto-mode-alist)) - -(defun pgsql-c-mode () - ;; sets up formatting for PostgreSQL C code - (interactive) - (c-mode) - (setq-default tab-width 4) - (c-set-style "bsd") ; set c-basic-offset to 4, plus other stuff - (c-set-offset 'case-label '+) ; tweak case indent to match PG custom - (setq indent-tabs-mode t)) ; make sure we keep tabs when indenting - - - - - For vi, your - ~/.vimrc or equivalent file should contain - the following: - - -set tabstop=4 - - - or equivalently from within vi, try - - -:set ts=4 - + The src/tools directory contains sample settings + files that can be used with the emacs, + xemacs or vim + editors to help ensure that they format code according to these + conventions. diff --git a/src/tools/editors/emacs.samples b/src/tools/editors/emacs.samples new file mode 100644 index 0000000000..a4d00bedc4 --- /dev/null +++ b/src/tools/editors/emacs.samples @@ -0,0 +1,78 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; +;;; This file contains several examples of how to set up emacs and/or xemacs +;;; to edit PostgreSQL code. +;;; +;;; Whichever set you choose would go in your .emacs file or equivalent. +;;; +;;; You only need one of these. +;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;;; This set is known to work with old versions of emacs + +(setq auto-mode-alist + (cons '("\\(postgres\\|pgsql\\).*\\.[ch]\\'" . pgsql-c-mode) + auto-mode-alist)) +(setq auto-mode-alist + (cons '("\\(postgres\\|pgsql\\).*\\.cc\\'" . pgsql-c-mode) + auto-mode-alist)) + +(defun pgsql-c-mode () + ;; sets up formatting for PostgreSQL C code + (interactive) + (c-mode) + (setq-default tab-width 4) + (c-set-style "bsd") ; set c-basic-offset to 4, plus other stuff + (c-set-offset 'case-label '+) ; tweak case indent to match PG custom + (setq indent-tabs-mode t)) ; make sure we keep tabs when indenting + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;;; Similar approach, known to work with xemacs +;;; Use of a named style makes it easy to use the style elsewhere + +(c-add-style "pgsql" + '("bsd" + (indent-tabs-mode . t) + (c-basic-offset . 4) + (tab-width . 4) + (c-offsets-alist . + ((case-label . +))) + ) + nil ) ; t = set this mode, nil = don't + +(defun pgsql-c-mode () + (c-mode) + (c-set-style "pgsql") +) + +(setq auto-mode-alist + (cons '("\\(postgres\\|pgsql\\).*\\.[chyl]\\'" . pgsql-c-mode) + auto-mode-alist)) +(setq auto-mode-alist + (cons '("\\(postgres\\|pgsql\\).*\\.cc\\'" . pgsql-c-mode) + auto-mode-alist)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;;; Slightly different approach - use a hook instead of a mode + +(add-hook 'c-mode-hook + (function + (lambda nil + (if (string-match "pgsql" buffer-file-name) + (progn + (c-set-style "bsd") + (setq c-basic-offset 4) + (setq tab-width 4) + (c-set-offset 'case-label '+) + (setq indent-tabs-mode t) + ) + )))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/src/tools/editors/vim.samples b/src/tools/editors/vim.samples new file mode 100644 index 0000000000..210d9a360a --- /dev/null +++ b/src/tools/editors/vim.samples @@ -0,0 +1,18 @@ + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" +" These settings are appropriate for editing PostgreSQL code with vim +" +" You would copy this into your .vimrc or equivalent +" +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +:if match(getcwd(), "/pgsql") >=0 || match(getcwd(), "/postgresql") >= 0 + +: set cinoptions=(0 +: set tabstop=4 +: set shiftwidth=4 + +:endif + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -- 2.40.0