Commit 2bcfe15e authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(fortran-mode): Set comment-use-syntax.

(fortran-fill-paragraph): Use fill-comment-paragraph.
parent 5b373bd3
...@@ -664,8 +664,9 @@ with no args, if that value is non-nil." ...@@ -664,8 +664,9 @@ with no args, if that value is non-nil."
;; (concat "\\(\\)\\(![ \t]*\\|" fortran-comment-line-start-skip "\\)") ;; (concat "\\(\\)\\(![ \t]*\\|" fortran-comment-line-start-skip "\\)")
"\\(\\)\\(?:^[CcDd*]\\|!\\)\\(?:\\([^ \t\n]\\)\\2+\\)?[ \t]*") "\\(\\)\\(?:^[CcDd*]\\|!\\)\\(?:\\([^ \t\n]\\)\\2+\\)?[ \t]*")
(set (make-local-variable 'comment-padding) "$$$") (set (make-local-variable 'comment-padding) "$$$")
(make-local-variable 'comment-start) (set (make-local-variable 'comment-start) fortran-comment-line-start)
(setq comment-start fortran-comment-line-start) ;; The syntax tables don't understand the column-0 comment-markers.
(set (make-local-variable 'comment-use-syntax) nil)
(make-local-variable 'require-final-newline) (make-local-variable 'require-final-newline)
(setq require-final-newline t) (setq require-final-newline t)
(make-local-variable 'abbrev-all-caps) (make-local-variable 'abbrev-all-caps)
...@@ -1753,43 +1754,9 @@ file before the end or the first `fortran-analyze-depth' lines." ...@@ -1753,43 +1754,9 @@ file before the end or the first `fortran-analyze-depth' lines."
"Fill surrounding comment block as paragraphs, else fill statement. "Fill surrounding comment block as paragraphs, else fill statement.
Intended as the value of `fill-paragraph-function'." Intended as the value of `fill-paragraph-function'."
(interactive "P") (interactive "P")
(save-excursion (or (fill-comment-paragraph justify)
(beginning-of-line)
(if (not (looking-at fortran-comment-line-start-skip))
(fortran-fill-statement) (fortran-fill-statement)
;; We're in a comment block. Find the start and end of a t))
;; paragraph, delimited either by non-comment lines or empty
;; comments. (Get positions as markers, since the
;; `indent-region' below can shift the block's end).
(let* ((non-empty-comment
(concat fortran-comment-line-start-skip "[^ \t\n]"))
(start (save-excursion
;; Find (start of) first line.
(while (and (zerop (forward-line -1))
(looking-at non-empty-comment)))
(or (looking-at non-empty-comment)
(forward-line)) ; overshot
(point-marker)))
(end (save-excursion
;; Find start of first line past region to fill.
(while (progn
(forward-line)
(looking-at non-empty-comment)))
(point-marker))))
;; Indent the block, find the string comprising the effective
;; comment start skip and use that as a fill-prefix for
;; filling the region.
(indent-region start end nil)
(let ((paragraph-ignore-fill-prefix nil)
(fill-prefix (progn
(beginning-of-line)
(looking-at fortran-comment-line-start-skip)
(match-string 0))))
(let (fill-paragraph-function)
(fill-region start end justify))) ; with normal `fill-paragraph'
(set-marker start nil)
(set-marker end nil))))
t)
(defun fortran-fill-statement () (defun fortran-fill-statement ()
"Fill a fortran statement up to `fill-column'." "Fill a fortran statement up to `fill-column'."
......
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