diff options
Diffstat (limited to 'lisp/progmodes/glasses.el')
-rw-r--r-- | lisp/progmodes/glasses.el | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lisp/progmodes/glasses.el b/lisp/progmodes/glasses.el index 0d9359caa77..6792e861888 100644 --- a/lisp/progmodes/glasses.el +++ b/lisp/progmodes/glasses.el @@ -116,6 +116,15 @@ parenthesis expression starts." :group 'glasses :type '(repeat regexp)) +(defcustom glasses-separate-capital-groups t + "If non-nil, try to separate groups of capital letters. +When the value is non-nil, HTMLSomething and IPv6 are displayed +as HTML_Something and I_Pv6 respectively. Set the value to nil +if you prefer to display them unchanged." + :group 'glasses + :type 'boolean + :version "24.1") + (defcustom glasses-uncapitalize-p nil "If non-nil, downcase embedded capital letters in identifiers. Only identifiers starting with lower case letters are affected, letters inside @@ -212,8 +221,11 @@ CATEGORY is the overlay category. If it is nil, use the `glasses' category." 'glasses-init)) ;; Face + separator (goto-char beg) - (while (re-search-forward "[a-z]\\([A-Z]\\)\\|[A-Z]\\([A-Z]\\)[a-z]" - end t) + (while (re-search-forward + (if glasses-separate-capital-groups + "[a-z]\\([A-Z]\\)\\|[A-Z]\\([A-Z]\\)[a-z]" + "[a-z]\\([A-Z]\\)") + end t) (let* ((n (if (match-string 1) 1 2)) (o (glasses-make-overlay (match-beginning n) (match-end n)))) (goto-char (match-beginning n)) |