(py-comment-indent-function): A replacement for

comment-indent-function's default lambda value (in simple.el), this
version finally kills this nit: auto-filling a comment that starts in
column zero with filladapt turned off would cascade the #'s to the
right.

Now auto-filling seems to work with or without filladapt, and with the
comment starting in any column.

(python-mode): Set comment-indent-function.
This commit is contained in:
Barry Warsaw 1998-07-07 15:11:24 +00:00
parent 9d865e1a30
commit 003932a508
1 changed files with 32 additions and 13 deletions

View File

@ -979,6 +979,7 @@ py-beep-if-tab-change\t\tring the bell if tab-width is changed"
(make-local-variable 'comment-end)
(make-local-variable 'comment-start-skip)
(make-local-variable 'comment-column)
(make-local-variable 'comment-indent-function)
(make-local-variable 'indent-region-function)
(make-local-variable 'indent-line-function)
(make-local-variable 'add-log-current-defun-function)
@ -995,6 +996,7 @@ py-beep-if-tab-change\t\tring the bell if tab-width is changed"
comment-end ""
comment-start-skip "# *"
comment-column 40
comment-indent-function 'py-comment-indent-function
indent-region-function 'py-indent-region
indent-line-function 'py-indent-line
;; tell add-log.el how to find the current function/method/variable
@ -1884,6 +1886,23 @@ it's tried again going backward."
py-indent-offset))
))
(defun py-comment-indent-function ()
;; A better value for comment-indent-function in Python source, this
;; actually works when filladapt is turned off. Without this, in
;; that case, comments which start in column zero cascade one
;; character to the right
(save-excursion
(beginning-of-line)
(let ((eol (py-point 'eol)))
(and comment-start-skip
(re-search-forward comment-start-skip eol t)
(setq eol (match-beginning 0)))
(goto-char eol)
(skip-chars-backward " \t")
(max comment-column (+ (current-column) (if (bolp) 0 1)))
)))
(defun py-shift-region (start end count)
(save-excursion
(goto-char end) (beginning-of-line) (setq end (point))