X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/c4f592c47f236d2493b86760d11fb38ffd3275d6..bb5aa5d6c3a0138c36e2879a78d9cdb22e6f410e:/lisp/progmodes/glasses.el diff --git a/lisp/progmodes/glasses.el b/lisp/progmodes/glasses.el index 580d8d9e4b..6792e86188 100644 --- a/lisp/progmodes/glasses.el +++ b/lisp/progmodes/glasses.el @@ -1,7 +1,6 @@ ;;; glasses.el --- make cantReadThis readable -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 -;; Free Software Foundation, Inc. +;; Copyright (C) 1999-2011 Free Software Foundation, Inc. ;; Author: Milan Zamazal ;; Maintainer: Milan Zamazal @@ -9,10 +8,10 @@ ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -20,9 +19,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -119,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 @@ -215,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)) @@ -293,7 +302,7 @@ recognized according to the current value of the variable `glasses-separator'." nil) -(defun glasses-change (beg end &optional old-len) +(defun glasses-change (beg end &optional _old-len) "After-change function updating glass overlays." (let ((beg-line (save-excursion (goto-char beg) (line-beginning-position))) (end-line (save-excursion (goto-char end) (line-end-position)))) @@ -331,5 +340,4 @@ at places they belong to." (provide 'glasses) -;; arch-tag: a3515167-c89e-484f-90a1-d85143e52b12 ;;; glasses.el ends here