]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/progmodes/python.el: Recognize docstrings.
authorTom Willemse <tom@ryuslash.org>
Sun, 7 Dec 2014 16:24:35 +0000 (11:24 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 7 Dec 2014 16:24:35 +0000 (11:24 -0500)
(python-docstring-at-p, python-font-lock-syntactic-face-function):
New functions.
(python-mode): Use them.

lisp/ChangeLog
lisp/progmodes/python.el

index f695e1c3180694cf6f8e17651ec6dc7db957f79a..50df1cd325309f837f0005d518767745768422e9 100644 (file)
@@ -1,9 +1,16 @@
+2014-12-07  Tom Willemse  <tom@ryuslash.org>  (tiny change)
+
+       * progmodes/python.el: Recognize docstrings.
+       (python-docstring-at-p, python-font-lock-syntactic-face-function):
+       New functions.
+       (python-mode): Use them.
+
 2014-12-06  Ulf Jasper  <ulf.jasper@web.de>
 
        * net/newst-treeview.el (newsticker--treeview-list-add-item)
        (newsticker--treeview-propertize-tag): Bind tree menu to mouse-3.
        (newsticker--treeview-create-groups-menu)
-       (newsticker--treeview-create-tree-menu): Removed.
+       (newsticker--treeview-create-tree-menu): Remove.
        (newsticker--treeview-tree-open-menu): New.
        (newsticker-treeview-tree-click): Pass event to
        `newsticker-treeview-tree-do-click'.
@@ -20,8 +27,8 @@
 
 2014-12-05  Juri Linkov  <juri@linkov.net>
 
-       * minibuffer.el (minibuffer-completion-help): Compare
-       selected-window with minibuffer-window to check whether
+       * minibuffer.el (minibuffer-completion-help):
+       Compare selected-window with minibuffer-window to check whether
        completions should be displayed near the minibuffer.  (Bug#17809)
        http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00311.html
 
@@ -52,7 +59,6 @@
        both in terms of the column to which it moves and the return
        value.  (Bug#19211)
 
-2014-12-05  Stephen Berman  <stephen.berman@gmx.net>
 2014-12-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * vc/ediff-init.el (ediff-odd-p): Remove.
index 9f9db6c6046770a7df0017f42eaa87318f5830c9..33c822a37d5f6d40e21d13668104990bb6ee74b7 100644 (file)
@@ -459,6 +459,23 @@ The type returned can be `comment', `string' or `paren'."
   'python-info-ppss-comment-or-string-p
   #'python-syntax-comment-or-string-p "24.3")
 
+(defun python-docstring-at-p (pos)
+  "Check to see if there is a docstring at POS."
+  (save-excursion
+    (goto-char pos)
+    (if (looking-at-p "'''\\|\"\"\"")
+        (progn
+          (python-nav-backward-statement)
+          (looking-at "\\`\\|class \\|def "))
+      nil)))
+
+(defun python-font-lock-syntactic-face-function (state)
+  (if (nth 3 state)
+      (if (python-docstring-at-p (nth 8 state))
+          font-lock-doc-face
+        font-lock-string-face)
+    font-lock-comment-face))
+
 (defvar python-font-lock-keywords
   ;; Keywords
   `(,(rx symbol-start
@@ -4312,7 +4329,10 @@ Arguments START and END narrow the buffer region to work on."
        'python-nav-forward-sexp)
 
   (set (make-local-variable 'font-lock-defaults)
-       '(python-font-lock-keywords nil nil nil nil))
+       '(python-font-lock-keywords
+         nil nil nil nil
+         (font-lock-syntactic-face-function
+          . python-font-lock-syntactic-face-function)))
 
   (set (make-local-variable 'syntax-propertize-function)
        python-syntax-propertize-function)