summaryrefslogtreecommitdiffstats
path: root/Misc/python-mode.el
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>1998-07-07 15:11:24 (GMT)
committerBarry Warsaw <barry@python.org>1998-07-07 15:11:24 (GMT)
commit003932a508ac3bdaac4e66485b938f519376cf06 (patch)
tree5661bca1d845df40fd67d22b66d8b0c013eceed0 /Misc/python-mode.el
parent9d865e1a3024846032cea47beecaaa1ddeaebfa4 (diff)
downloadcpython-003932a508ac3bdaac4e66485b938f519376cf06.zip
cpython-003932a508ac3bdaac4e66485b938f519376cf06.tar.gz
cpython-003932a508ac3bdaac4e66485b938f519376cf06.tar.bz2
(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.
Diffstat (limited to 'Misc/python-mode.el')
-rw-r--r--Misc/python-mode.el45
1 files changed, 32 insertions, 13 deletions
diff --git a/Misc/python-mode.el b/Misc/python-mode.el
index 644f1ef..e9dd62d 100644
--- a/Misc/python-mode.el
+++ b/Misc/python-mode.el
@@ -979,24 +979,26 @@ 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)
;;
(set-syntax-table py-mode-syntax-table)
- (setq major-mode 'python-mode
- mode-name "Python"
- local-abbrev-table python-mode-abbrev-table
- font-lock-defaults '(python-font-lock-keywords)
- paragraph-separate "^[ \t]*$"
- paragraph-start "^[ \t]*$"
- require-final-newline t
- comment-start "# "
- comment-end ""
- comment-start-skip "# *"
- comment-column 40
- indent-region-function 'py-indent-region
- indent-line-function 'py-indent-line
+ (setq major-mode 'python-mode
+ mode-name "Python"
+ local-abbrev-table python-mode-abbrev-table
+ font-lock-defaults '(python-font-lock-keywords)
+ paragraph-separate "^[ \t]*$"
+ paragraph-start "^[ \t]*$"
+ require-final-newline t
+ comment-start "# "
+ 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
add-log-current-defun-function 'py-current-defun
)
@@ -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))