From 003932a508ac3bdaac4e66485b938f519376cf06 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Tue, 7 Jul 1998 15:11:24 +0000 Subject: (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. --- Misc/python-mode.el | 45 ++++++++++++++++++++++++++++++++------------- 1 file 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)) -- cgit v0.12