Commit 833815e8 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(lisp-fill-paragraph): Use fill-comment-paragraph.

parent 3d9ce27e
2002-11-02 Stefan Monnier <monnier@cs.yale.edu>
* textmodes/fill.el (fill-paragraph-handle-comment): New var.
(fill-comment-paragraph): New fun (generalizes of lisp-fill-paragraph).
(fill-paragraph): Use them.
* emacs-lisp/lisp-mode.el (lisp-fill-paragraph):
Use fill-comment-paragraph.
2002-11-02 Stefan Monnier <monnier@cs.yale.edu>
* bindings.el (mode-line-change-eol)
(mode-line-eol-desc-cache, mode-line-eol-desc): New.
(mode-line-mule-info): Use them for the EOL part of the modeline.
* server.el (server-sentinel): Kill buffers if applicable.
(server-temp-file-p): Make arg optional.
(server-done): Use it to simplify.
(server-switch-buffer): If server-window is a function, use it.
* mail/undigest.el (rmail-digest-end-regexps): Simplify.
(undigestify-rmail-message): Fix paren-bug and simplify.
2002-11-02 Kim F. Storm <storm@cua.dk>
 
* info.el (Info-hide-note-references): nil value now does no
......@@ -24,7 +47,7 @@
 
2002-10-31 Kim F. Storm <storm@cua.dk>
 
* shell.el (explicit-bash-args): Bash 1.x doesn't grook
* shell.el (explicit-bash-args): Bash 1.x doesn't grok
--noediting option; added run-time check to exclude it.
 
* info.el (Info-follow-reference, Info-next-reference)
......
......@@ -11237,8 +11237,8 @@
* format.el (format-deannotate-region): Don't change extents of
enclosing annotations of the same kind.
 
* format.el (format-deannotate-region): Use
property-increment-region to add to numeric properties.
* format.el (format-deannotate-region):
Use property-increment-region to add to numeric properties.
 
1997-08-29 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
 
......@@ -12431,8 +12431,8 @@
 
* progmodes/awk-mode.el (awk-mode): Require cc-mode, not cc-langs.
 
* wid-edit.el (widget-single-line-display-table): Variable
commented out; don't use it either.
* wid-edit.el (widget-single-line-display-table):
Variable commented out; don't use it either.
 
* case-table.el: Delete autoload cookies (file is preloaded).
 
......@@ -12452,7 +12452,7 @@
 
* progmodes/cc-mode.el (idl-mode): Support for CORBA's IDL language.
 
* progmodes/cc-mode.el (c-initialize-cc-mode): move the calling of
* progmodes/cc-mode.el (c-initialize-cc-mode): Move the calling of
c-make-styles-buffer-local into c-initialize-builtin-style.
 
* progmodes/cc-mode.el (c-initialize-cc-mode): Run the
......@@ -12527,7 +12527,7 @@
1997-08-08 Boris Goldowsky <boris@gnu.ai.mit.edu>
 
* format.el (format-annotate-single-property-change,
format-annotate-atomic-property-change): move code that interprets
format-annotate-atomic-property-change): Move code that interprets
nil as 0 inside test that property is numeric.
 
1997-08-08 Valery Alexeev <valery@math.uga.edu>
......@@ -13793,8 +13793,8 @@
(describe-fontset): Likewise. Doc-string modified.
(list-fontsets): Likewise.
 
* international/encoded-kb.el (encoded-kbd-mode): Call
coding-system-XXX instead of coding-vector-XXX.
* international/encoded-kb.el (encoded-kbd-mode):
Call coding-system-XXX instead of coding-vector-XXX.
 
1997-07-09 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
 
......@@ -14612,8 +14612,8 @@
(type-break-cancel-function-timers): New function.
All callers of cancel-function-timers changed.
(type-break-check-post-command-hook): New function.
(type-break-mode, type-break-schedule, type-break-alarm,
type-break-time-warning-alarm): Call it.
(type-break-mode, type-break-schedule, type-break-alarm)
(type-break-time-warning-alarm): Call it.
(type-break-mode-line-countdown-or-break): New function.
(type-break): Call it.
(type-break-time-warning-schedule): Put type-break-time-warning
......@@ -22779,8 +22779,8 @@
calling function, not setting variable.
(enriched-encode): New argument ORIG-BUF; evaluate
enriched-initial-annotation in that buffer.
(enriched-decode): Turn on use-hard-newlines with function. Use
new `set-hard-newline-properties' function. Set fill-column from
(enriched-decode): Turn on use-hard-newlines with function.
Use new `set-hard-newline-properties' function. Set fill-column from
File-Width header; re-fill paragraphs only if there is no
File-Width header.
 
......
......@@ -1060,99 +1060,23 @@ If any of the current line is a comment, fill the comment or the
paragraph of it that point is in, preserving the comment's indentation
and initial semicolons."
(interactive "P")
(let (
;; Non-nil if the current line contains a comment.
has-comment
;; Non-nil if the current line contains code and a comment.
has-code-and-comment
;; If has-comment, the appropriate fill-prefix for the comment.
comment-fill-prefix
)
;; Figure out what kind of comment we are looking at.
(save-excursion
(beginning-of-line)
(cond
;; A line with nothing but a comment on it?
((looking-at "[ \t]*;[; \t]*")
(setq has-comment t
comment-fill-prefix (match-string 0)))
;; A line with some code, followed by a comment? Remember that the
;; semi which starts the comment shouldn't be part of a string or
;; character.
((let ((state (syntax-ppss (line-end-position))))
(when (nth 4 state)
(goto-char (nth 8 state))
(looking-at ";+[\t ]*")))
(setq has-comment t has-code-and-comment t)
(setq comment-fill-prefix
(concat (make-string (/ (current-column) tab-width) ?\t)
(make-string (% (current-column) tab-width) ?\ )
(match-string 0))))))
(if (not has-comment)
;; `paragraph-start' is set here (not in the buffer-local
;; variable so that `forward-paragraph' et al work as
;; expected) so that filling (doc) strings works sensibly.
;; Adding the opening paren to avoid the following sexp being
;; filled means that sexps generally aren't filled as normal
;; text, which is probably sensible. The `;' and `:' stop the
;; filled para at following comment lines and keywords
;; (typically in `defcustom').
(let ((paragraph-start (concat paragraph-start
"\\|\\s-*[\(;:\"]"))
;; Avoid filling the first line of docstring.
(paragraph-separate
(concat paragraph-separate "\\|\\s-*\".*\\.$")))
(fill-paragraph justify))
;; Narrow to include only the comment, and then fill the region.
(save-excursion
(save-restriction
(beginning-of-line)
(narrow-to-region
;; Find the first line we should include in the region to fill.
(save-excursion
(while (and (zerop (forward-line -1))
(looking-at "[ \t]*;")))
;; We may have gone too far. Go forward again.
(or (looking-at ".*;")
(forward-line 1))
(point))
;; Find the beginning of the first line past the region to fill.
(save-excursion
(while (progn (forward-line 1)
(looking-at "[ \t]*;")))
(point)))
;; Lines with only semicolons on them can be paragraph boundaries.
(let* ((paragraph-separate (concat paragraph-separate "\\|[ \t;]*$"))
(paragraph-ignore-fill-prefix nil)
(fill-prefix comment-fill-prefix)
(after-line (if has-code-and-comment
(line-beginning-position 2)))
(end (progn
(forward-paragraph)
(or (bolp) (newline 1))
(point)))
;; If this comment starts on a line with code,
;; include that like in the filling.
(beg (progn (backward-paragraph)
(if (eq (point) after-line)
(forward-line -1))
(point))))
(fill-region-as-paragraph beg end
justify nil
(save-excursion
(goto-char beg)
(if (looking-at fill-prefix)
nil
(re-search-forward comment-start-skip))))))))
t))
(or (fill-comment-paragraph justify)
;; `paragraph-start' is set here (not in the buffer-local
;; variable so that `forward-paragraph' et al work as
;; expected) so that filling (doc) strings works sensibly.
;; Adding the opening paren to avoid the following sexp being
;; filled means that sexps generally aren't filled as normal
;; text, which is probably sensible. The `;' and `:' stop the
;; filled para at following comment lines and keywords
;; (typically in `defcustom').
(let ((paragraph-start (concat paragraph-start
"\\|\\s-*[\(;:\"]"))
;; Avoid filling the first line of docstring.
(paragraph-separate
(concat paragraph-separate "\\|\\s-*\".*\\.$")))
(fill-paragraph justify))
;; Never return nil.
t))
(defun indent-code-rigidly (start end arg &optional nochange-regexp)
"Indent all lines of code, starting in the region, sideways by ARG columns.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment