Chapter 43. PostgreSQL 源代码

Table of Contents
43.1. 格式
43.2. 报告服务器里的错误
43.3. 错误消息风格指导
43.3.1. 何去何从
43.3.2. 格式化
43.3.3. 引号
43.3.4. 使用引号
43.3.5. 语法和标点
43.3.6. 大写字符与小写字符比较
43.3.7. 避免被动语气
43.3.8. 现代时与过去时的比较
43.3.9. 对象类型
43.3.10. 方括弧
43.3.11. 组装错误信息
43.3.12. 错误的原因
43.3.13. 函数名
43.3.14. 尽量避免的字眼
43.3.15. 正确地拼写
43.3.16. 本地化

43.1. 格式

代码格式使用每个制表符(tab)4列的空白, 目前是保留制表符状态(也就是说制表符不被展开为空白)。 每个逻辑缩进层次都是更多的一个 tab。布局规则(花括弧定位等)遵循 BSD 传统。

虽然提交的补丁并不需要我那全遵循这些格式化规则,我们最好还是这么做。 你的代码将会被 pgindent 处理,虽然这样做不会让它看起来比其它的格式化习惯更好看。

对于使用 Emacs 的人,把下面行(或者类似的东西)增加到你的 ~/.emacs 初始化文件里面去:

;; 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

对于 vi,你的 ~/.vimrc 或者相当的文件应该包含下面的东西:

set tabstop=4

或者在 vi 里面键入

:set ts=4

文本浏览工具 moreless 可以用下面命令调用

more -x4
less -x4

这样就可以让他们正确显示 tab 键。