]> git.eshelyaron.com Git - emacs.git/commitdiff
(glasses-make-readable): If glasses-separator differs from underscore,
authorEli Zaretskii <eliz@gnu.org>
Sat, 17 Sep 2005 11:02:11 +0000 (11:02 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sat, 17 Sep 2005 11:02:11 +0000 (11:02 +0000)
put appropriate overlays over underscore characters.
(glasses-convert-to-unreadable): If glasses-separator differs from
underscore, try to convert glasses-separator characters to underscores.

lisp/ChangeLog
lisp/progmodes/glasses.el

index 9f774f8990af2122ec1b5e99f96aab15551260ab..f64d4b0159567c74644b920a26d1c355c9b4c0ae 100644 (file)
@@ -1,3 +1,12 @@
+2005-09-17  Milan Zamazal  <pdm@zamazal.org>
+
+       * progmodes/glasses.el (glasses-make-readable): If
+       glasses-separator differs from underscore, put appropriate
+       overlays over underscore characters.
+       (glasses-convert-to-unreadable): If glasses-separator differs from
+       underscore, try to convert glasses-separator characters to
+       underscores.
+
 2005-09-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * calendar/diary-lib.el (mark-diary-entries): Don't move point.
index b32c5eb6d491d1ac1fc8612456e8141163d9c4f1..2733cb407a4334f649756c757be4fcc495be7bc2 100644 (file)
@@ -195,6 +195,16 @@ CATEGORY is the overlay category.  If it is nil, use the `glasses' category."
                           (looking-at glasses-uncapitalize-regexp))))
              (overlay-put o 'invisible t)
              (overlay-put o 'after-string (downcase (match-string n))))))
+        ;; Separator change
+        (unless (string= glasses-separator "_")
+          (goto-char beg)
+          (while (re-search-forward "[a-zA-Z0-9]\\(_+\\)[a-zA-Z0-9]" end t)
+            (goto-char (match-beginning 1))
+            (while (eql (char-after) ?\_)
+              (let ((o (glasses-make-overlay (point) (1+ (point)))))
+                ;; `concat' ensures the character properties won't merge
+                (overlay-put o 'display (concat glasses-separator)))
+              (forward-char))))
        ;; Parentheses
        (when glasses-separate-parentheses-p
          (goto-char beg)
@@ -227,6 +237,13 @@ recognized according to the current value of the variable `glasses-separator'."
          (let ((n (if (match-string 1) 1 2)))
            (replace-match "" t nil nil n)
            (goto-char (match-end n))))
+        (unless (string= glasses-separator "_")
+          (goto-char (point-min))
+          (while (re-search-forward (format "[a-zA-Z0-9]\\(%s+\\)[a-zA-Z0-9]"
+                                            separator)
+                                    nil t)
+            (replace-match "_" nil nil nil 1)
+            (goto-char (match-beginning 1))))
        (when glasses-separate-parentheses-p
          (goto-char (point-min))
          (while (re-search-forward "[a-zA-Z]_*\\( \\)\(" nil t)