[slime-devel] fontification of nested read-suppresses

Christophe Rhodes csr21 at cantab.net
Thu Mar 8 09:48:48 EST 2007


Hi,

I attach a patch which (I think) cures the fontification of
  (defun foo (x)
    #+nil #+nil
    (frob x)
    (bar x)
    (1+ x))
in Emacs 21.  Without this patch, I think only the second #+nil and
(frob x) get commented out; with it, both #+nils and the two
succeeding forms do.

My point moving code sucks somewhat; if someone wants to tell me the
right way to do (forward-sexp)/(backward-sexp), please do...

Thanks,

Christophe

-------------- next part --------------
Index: ChangeLog
===================================================================
RCS file: /project/slime/cvsroot/slime/ChangeLog,v
retrieving revision 1.1076
diff -u -r1.1076 ChangeLog
--- ChangeLog	26 Feb 2007 09:56:06 -0000	1.1076
+++ ChangeLog	8 Mar 2007 14:45:08 -0000
@@ -1,3 +1,8 @@
+2007-03-08  Christophe Rhodes  <csr21 at cantab.net>
+
+	* slime.el (slime-search-suppressed-forms): handle multiple
+	conditionals on the same line.
+
 2007-02-26  Nikodemus Siivola <nikodemus at random-state.net>
 
 	* swank.lisp (inspect-for-emacs): Add support for inspecting
Index: slime.el
===================================================================
RCS file: /project/slime/cvsroot/slime/slime.el,v
retrieving revision 1.766
diff -u -r1.766 slime.el
--- slime.el	25 Feb 2007 15:59:34 -0000	1.766
+++ slime.el	8 Mar 2007 14:45:09 -0000
@@ -9744,7 +9744,7 @@
   "Find reader conditionalized forms where the test is false."
   (when (and slime-highlight-suppressed-forms
              (slime-connected-p)
-	     (re-search-forward "^\\([^;\n]*[ \t(]\\)?#[-+]" limit t))
+	     (re-search-forward "^\\([^;\n]*?[ \t(]\\)?#[-+]" limit t))
     (ignore-errors
       (let* ((start (- (point) 2))
              (char (char-before))
@@ -9754,7 +9754,8 @@
           (if (or (and (eq char ?+) (not val))
                   (and (eq char ?-) val))
               (progn 
-                (forward-sexp)
+                (forward-sexp) (backward-sexp)
+                (slime-forward-sexp)
                 (assert (<= (point) limit))
                 (let ((md (match-data)))
                   (fill md nil)


More information about the slime-devel mailing list