+2014-01-13 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * vc/log-edit.el: Fix highlighting of summary when it's the first line.
+ (log-edit--match-first-line): New function.
+ (log-edit-font-lock-keywords): Use it.
+ (log-edit-mode): Make jit-lock-defer-multiline work.
+
2014-01-13 Bastien Guerry <bzg@gnu.org>
* rect.el (rectangle-mark-mode): When the region is not active,
2014-01-13 Martin Rudalics <rudalics@gmx.at>
fit-frame/window-to-buffer code fixes including one for Bug#14096.
- * window.el (fit-frame-to-buffer): Fix doc-string. Respect
- window-min-height/-width. Fit pixelwise when
+ * window.el (fit-frame-to-buffer): Fix doc-string.
+ Respect window-min-height/-width. Fit pixelwise when
frame-resize-pixelwise is non-nil. Adjust right/bottom edge
when avoiding that frame goes partially off-screen.
(fit-window-to-buffer): Respect window-min-height/-width
(set-match-data (list start (point)))
(point))))
+(defun log-edit--match-first-line (limit)
+ (let ((start (point)))
+ (rfc822-goto-eoh)
+ (skip-chars-forward "\n")
+ (and (< start (line-end-position))
+ (< (point) limit)
+ (save-excursion
+ (not (re-search-backward "^Summary:[ \t]*[^ \t\n]" nil t)))
+ (looking-at ".+")
+ (progn
+ (goto-char (match-end 0))
+ (put-text-property (point-min) (point)
+ 'jit-lock-defer-multiline t)
+ (point)))))
+
(defvar log-edit-font-lock-keywords
;; Copied/inspired by message-font-lock-keywords.
`((log-edit-match-to-eoh
nil lax))
("^\n"
(progn (goto-char (match-end 0)) (1+ (match-end 0))) nil
- (0 '(:height 0.1 :inverse-video t))))))
+ (0 '(:height 0.1 :inverse-video t))))
+ (log-edit--match-first-line (0 'log-edit-summary))))
(defvar log-edit-font-lock-gnu-style nil
"If non-nil, highlight common failures to follow the GNU coding standards.")
\\{log-edit-mode-map}"
(set (make-local-variable 'font-lock-defaults)
'(log-edit-font-lock-keywords t))
+ (setq-local jit-lock-contextually t) ;For the "first line is summary".
(make-local-variable 'log-edit-comment-ring-index)
(add-hook 'kill-buffer-hook 'log-edit-remember-comment nil t)
(hack-dir-local-variables-non-file-buffer))