Index: /trunk/source/cocoa-ide/cocoa-editor.lisp
===================================================================
--- /trunk/source/cocoa-ide/cocoa-editor.lisp	(revision 15500)
+++ /trunk/source/cocoa-ide/cocoa-editor.lisp	(revision 15501)
@@ -1329,4 +1329,6 @@
 (defloadvar *lisp-string-color* (#/blueColor ns:ns-color))
 (defloadvar *lisp-comment-color* (#/brownColor ns:ns-color))
+(defloadvar *lisp-double-comment-color* (#/orangeColor ns:ns-color))
+(defloadvar *lisp-triple-comment-color* (#/redColor ns:ns-color))
 
 ;;; LAYOUT is an NSLayoutManager in which we'll set temporary character
@@ -1343,5 +1345,7 @@
     (let* ((color-attribute #&NSForegroundColorAttributeName)
            (string-color  *lisp-string-color* )
-           (comment-color *lisp-comment-color*))
+           (comment-color *lisp-comment-color*)
+           (double-comment-color *lisp-double-comment-color*)
+           (triple-comment-color *lisp-triple-comment-color*))
       (hi::with-mark ((m (hi::buffer-start-mark hi::*current-buffer*)))
         (hi::line-start m start-line)
@@ -1366,5 +1370,16 @@
                                (t :comment)))
                        (start (+ p istart))
-                       (len (- iend istart)))
+                       (len (- iend istart))
+                       (nsemi (if (eq type :comment)
+                                (do* ((n 0)
+                                      (i istart (1+ i)))
+                                     ((= i iend) n)
+                                  (unless (eq
+                                           (hi:character-attribute :lisp-syntax
+                                                                   (hi::line-character line i))
+                                           :comment)
+                                    (return n))
+                                  (when (= (incf n) 3)
+                                    (return n))))))
                   (when type
                     (when (eq type :string)
@@ -1373,5 +1388,10 @@
                     (setf (ns:ns-range-location range) start
                           (ns:ns-range-length range) len)
-                    (let ((attrs (if (eq type :string) string-color comment-color)))
+                    (let ((attrs (if (eq type :string)
+                                   string-color
+                                   (case nsemi
+                                     (2 double-comment-color)
+                                     (3 triple-comment-color)
+                                     (t comment-color)))))
                       (#/addTemporaryAttribute:value:forCharacterRange:
                        layout color-attribute attrs range)))
