diff options
| author | Stefan Monnier | 2012-05-08 11:19:18 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-05-08 11:19:18 -0400 |
| commit | 49ed9c8e75a0b869f06606fc05fc38f5f207083e (patch) | |
| tree | bfa7063513271256a696286ba3594ad6ef999627 | |
| parent | 07d00b56112b5c9772ba6b73fd5b88474a5e1b22 (diff) | |
| download | emacs-49ed9c8e75a0b869f06606fc05fc38f5f207083e.tar.gz emacs-49ed9c8e75a0b869f06606fc05fc38f5f207083e.zip | |
* lisp/vc/log-edit.el: Add GNU coding standards highlighting.
(log-edit-font-lock-gnu-style)
(log-edit-font-lock-gnu-keywords): New vars.
(log-edit-font-lock-keywords): New fun.
(log-edit-mode): Don't fold case in font-lock.
(log-edit-font-lock-keywords): Do not assume case-folding.
* .dir-locals.el (log-edit-mode): Enable gnu-style checks.
| -rw-r--r-- | .dir-locals.el | 3 | ||||
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rw-r--r-- | lisp/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/vc/log-edit.el | 46 |
4 files changed, 57 insertions, 3 deletions
diff --git a/.dir-locals.el b/.dir-locals.el index 4da890f92ab..471f74da12a 100644 --- a/.dir-locals.el +++ b/.dir-locals.el | |||
| @@ -5,7 +5,8 @@ | |||
| 5 | ;; You must set bugtracker_debbugs_url in your bazaar.conf for this to work. | 5 | ;; You must set bugtracker_debbugs_url in your bazaar.conf for this to work. |
| 6 | ;; See admin/notes/bugtracker. | 6 | ;; See admin/notes/bugtracker. |
| 7 | (log-edit-mode . ((log-edit-rewrite-fixes | 7 | (log-edit-mode . ((log-edit-rewrite-fixes |
| 8 | "[ \n](bug#\\([0-9]+\\))" . "debbugs:\\1"))) | 8 | "[ \n](bug#\\([0-9]+\\))" . "debbugs:\\1") |
| 9 | (log-edit-font-lock-gnu-style . t))) | ||
| 9 | (change-log-mode . ((add-log-time-zone-rule . t) | 10 | (change-log-mode . ((add-log-time-zone-rule . t) |
| 10 | (fill-column . 74) | 11 | (fill-column . 74) |
| 11 | (bug-reference-url-format . "http://debbugs.gnu.org/%s") | 12 | (bug-reference-url-format . "http://debbugs.gnu.org/%s") |
| @@ -1,3 +1,7 @@ | |||
| 1 | 2012-05-08 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * .dir-locals.el (log-edit-mode): Enable gnu-style checks. | ||
| 4 | |||
| 1 | 2012-05-08 Glenn Morris <rgm@gnu.org> | 5 | 2012-05-08 Glenn Morris <rgm@gnu.org> |
| 2 | 6 | ||
| 3 | * make-dist: No more doc/lispref/*.el. | 7 | * make-dist: No more doc/lispref/*.el. |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fae2f08b804..3d275acd46c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,5 +1,12 @@ | |||
| 1 | 2012-05-08 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2012-05-08 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 2 | ||
| 3 | * vc/log-edit.el: Add GNU coding standards highlighting. | ||
| 4 | (log-edit-font-lock-gnu-style) | ||
| 5 | (log-edit-font-lock-gnu-keywords): New vars. | ||
| 6 | (log-edit-font-lock-keywords): New fun. | ||
| 7 | (log-edit-mode): Don't fold case in font-lock. | ||
| 8 | (log-edit-font-lock-keywords): Do not assume case-folding. | ||
| 9 | |||
| 3 | * imenu.el: Misc cleanup. Make docstrings out of comments. | 10 | * imenu.el: Misc cleanup. Make docstrings out of comments. |
| 4 | Use lexical-binding. | 11 | Use lexical-binding. |
| 5 | (imenu--index-alist, imenu--last-menubar-index-alist) | 12 | (imenu--index-alist, imenu--last-menubar-index-alist) |
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el index db70f417393..2abb1ec9c0a 100644 --- a/lisp/vc/log-edit.el +++ b/lisp/vc/log-edit.el | |||
| @@ -349,7 +349,7 @@ automatically." | |||
| 349 | (defvar log-edit-font-lock-keywords | 349 | (defvar log-edit-font-lock-keywords |
| 350 | ;; Copied/inspired by message-font-lock-keywords. | 350 | ;; Copied/inspired by message-font-lock-keywords. |
| 351 | `((log-edit-match-to-eoh | 351 | `((log-edit-match-to-eoh |
| 352 | (,(concat "^\\(\\([a-z]+\\):\\)" log-edit-header-contents-regexp) | 352 | (,(concat "^\\(\\([[:alpha:]]+\\):\\)" log-edit-header-contents-regexp) |
| 353 | (progn (goto-char (match-beginning 0)) (match-end 0)) nil | 353 | (progn (goto-char (match-beginning 0)) (match-end 0)) nil |
| 354 | (1 (if (assoc (match-string 2) log-edit-headers-alist) | 354 | (1 (if (assoc (match-string 2) log-edit-headers-alist) |
| 355 | 'log-edit-header | 355 | 'log-edit-header |
| @@ -360,6 +360,48 @@ automatically." | |||
| 360 | 'log-edit-header) | 360 | 'log-edit-header) |
| 361 | nil lax))))) | 361 | nil lax))))) |
| 362 | 362 | ||
| 363 | (defvar log-edit-font-lock-gnu-style nil | ||
| 364 | "If non-nil, highlight common failures to follow the GNU coding standards.") | ||
| 365 | (put 'log-edit-font-lock-gnu-style 'safe-local-variable 'booleanp) | ||
| 366 | |||
| 367 | (defconst log-edit-font-lock-gnu-keywords | ||
| 368 | ;; Use | ||
| 369 | ;; * foo.el (bla, bli) | ||
| 370 | ;; (blo, blu): Toto. | ||
| 371 | ;; Rather than | ||
| 372 | ;; * foo.el (bla, bli, | ||
| 373 | ;; blo, blu): Toto. | ||
| 374 | '(("^[ \t]*\\(?:\\* .*\\)?\\(([^\n)]*,\\s-*\\)$" | ||
| 375 | (1 '(face font-lock-warning-face | ||
| 376 | help-echo "Continue function lists with \")\\n(\".") t)) | ||
| 377 | ;; Don't leave a lone word on a single line. | ||
| 378 | ;;("^\\s-*\\(\\S-*[^\n:)]\\)\\s-*$" (1 font-lock-warning-face t)) | ||
| 379 | ;; Don't cut a sentence right after the first word (better to move | ||
| 380 | ;; the sentence on the next line, then). | ||
| 381 | ;;("[.:]\\s-+\\(\\sw+\\)\\s-*$" (1 font-lock-warning-face t)) | ||
| 382 | ;; Change Log entries should use present tense. | ||
| 383 | ("):[ \t\n]*[[:alpha:]]+\\(ed\\)\\>" | ||
| 384 | (1 '(face font-lock-warning-face help-echo "Use present tense.") t)) | ||
| 385 | ;; Change log entries start with a capital letter. | ||
| 386 | ("): [a-z]" (0 '(face font-lock-warning-face help-echo "Capitalize.") t)) | ||
| 387 | ("[^[:upper:]]\\(\\. [[:upper:]]\\)" | ||
| 388 | (1 '(face font-lock-warning-face | ||
| 389 | help-echo "Use two spaces to end a sentence") t)) | ||
| 390 | ("^(" | ||
| 391 | (0 (let ((beg (max (point-min) (- (match-beginning 0) 2)))) | ||
| 392 | (put-text-property beg (match-end 0) 'font-lock-multiline t) | ||
| 393 | (if (eq (char-syntax (char-after beg)) ?w) | ||
| 394 | '(face font-lock-warning-face | ||
| 395 | help-echo "Punctuate previous line."))) | ||
| 396 | t)) | ||
| 397 | )) | ||
| 398 | |||
| 399 | (defun log-edit-font-lock-keywords () | ||
| 400 | (if log-edit-font-lock-gnu-style | ||
| 401 | (append log-edit-font-lock-keywords | ||
| 402 | log-edit-font-lock-gnu-keywords) | ||
| 403 | log-edit-font-lock-keywords)) | ||
| 404 | |||
| 363 | ;;;###autoload | 405 | ;;;###autoload |
| 364 | (defun log-edit (callback &optional setup params buffer mode &rest _ignore) | 406 | (defun log-edit (callback &optional setup params buffer mode &rest _ignore) |
| 365 | "Setup a buffer to enter a log message. | 407 | "Setup a buffer to enter a log message. |
| @@ -416,7 +458,7 @@ commands (under C-x v for VC, for example). | |||
| 416 | 458 | ||
| 417 | \\{log-edit-mode-map}" | 459 | \\{log-edit-mode-map}" |
| 418 | (set (make-local-variable 'font-lock-defaults) | 460 | (set (make-local-variable 'font-lock-defaults) |
| 419 | '(log-edit-font-lock-keywords t t)) | 461 | '(log-edit-font-lock-keywords t)) |
| 420 | (make-local-variable 'log-edit-comment-ring-index) | 462 | (make-local-variable 'log-edit-comment-ring-index) |
| 421 | (hack-dir-local-variables-non-file-buffer)) | 463 | (hack-dir-local-variables-non-file-buffer)) |
| 422 | 464 | ||