]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/smie.el (smie-debug--describe-cycle): Fix typo.
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 21 Sep 2010 21:18:08 +0000 (23:18 +0200)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 21 Sep 2010 21:18:08 +0000 (23:18 +0200)
(smie-indent-comment): Be more careful with comment-start-skip.
(smie-indent-comment-close, smie-indent-comment-inside): New funs.
(smie-indent-functions): Use them.

lisp/ChangeLog
lisp/emacs-lisp/smie.el

index e293d7612ba9d9ef293c6034edaaa7745e289d71..9900472a59deee0161a7ebf609ec413cb4f9d38a 100644 (file)
@@ -1,3 +1,10 @@
+2010-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/smie.el (smie-debug--describe-cycle): Fix typo.
+       (smie-indent-comment): Be more careful with comment-start-skip.
+       (smie-indent-comment-close, smie-indent-comment-inside): New funs.
+       (smie-indent-functions): Use them.
+
 2010-09-21  Michael Albinus  <michael.albinus@gmx.de>
 
        * net/ange-ftp.el (ange-ftp-skip-msgs): Add "^504 ..." message.
index 0267e9771f5f34bfc96658d6ad11b5199a87d8b9..55516d276da65ec9391beb6ad1efd6821aff5584 100644 (file)
@@ -338,7 +338,7 @@ CSTS is a list of pairs representing arcs in a graph."
                      res))
                  cycle)))
     (mapconcat
-     (lambda (elems) (mapconcat 'indentity elems "="))
+     (lambda (elems) (mapconcat 'identity elems "="))
      (append names (list (car names)))
      " < ")))
 
@@ -1173,7 +1173,11 @@ in order to figure out the indentation of some other (further down) point."
   ;; front of a comment" when doing virtual-indentation anyway.  And if we are
   ;; (as can happen in octave-mode), moving forward can lead to inf-loops.
   (and (smie-indent--bolp)
-       (looking-at comment-start-skip)
+       (let ((pos (point)))
+         (save-excursion
+           (beginning-of-line)
+           (and (re-search-forward comment-start-skip (line-end-position) t)
+                (eq pos (or (match-end 1) (match-beginning 0))))))
        (save-excursion
          (forward-comment (point-max))
          (skip-chars-forward " \t\r\n")
@@ -1194,6 +1198,20 @@ in order to figure out the indentation of some other (further down) point."
                (if (looking-at (regexp-quote continue))
                    (current-column))))))))
 
+(defun smie-indent-comment-close ()
+  (and (boundp 'comment-end-skip)
+       comment-end-skip
+       (not (looking-at " \t*$"))       ;Not just a \n comment-closer.
+       (looking-at comment-end-skip)
+       (nth 4 (syntax-ppss))
+       (save-excursion
+         (goto-char (nth 8 (syntax-ppss)))
+         (current-column))))
+
+(defun smie-indent-comment-inside ()
+  (and (nth 4 (syntax-ppss))
+       'noindent))
+
 (defun smie-indent-after-keyword ()
   ;; Indentation right after a special keyword.
   (save-excursion
@@ -1275,9 +1293,10 @@ in order to figure out the indentation of some other (further down) point."
            (current-column)))))))
 
 (defvar smie-indent-functions
-  '(smie-indent-fixindent smie-indent-bob smie-indent-close smie-indent-comment
-   smie-indent-comment-continue smie-indent-keyword smie-indent-after-keyword
-   smie-indent-exps)
+  '(smie-indent-fixindent smie-indent-bob smie-indent-close
+    smie-indent-comment smie-indent-comment-continue smie-indent-comment-close
+    smie-indent-comment-inside smie-indent-keyword smie-indent-after-keyword
+    smie-indent-exps)
   "Functions to compute the indentation.
 Each function is called with no argument, shouldn't move point, and should
 return either nil if it has no opinion, or an integer representing the column