[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: c-update-modeline format for c-block-comment-flag
From: |
Alan Mackenzie |
Subject: |
Re: c-update-modeline format for c-block-comment-flag |
Date: |
Fri, 13 Oct 2017 15:36:23 +0000 |
User-agent: |
Mutt/1.7.2 (2016-11-26) |
Hello again, Andy.
On Fri, Oct 13, 2017 at 16:20:48 +0100, Andy Moreton wrote:
> On Fri 13 Oct 2017, Alan Mackenzie wrote:
> > Hello, Andy.
> > On Fri, Oct 13, 2017 at 11:24:03 +0100, Andy Moreton wrote:
> >> Hi,
> >> The handling of c-block-comment-flag in c-update-modeline is
> >> unfortunate:
> >> (defun c-update-modeline ()
> >> (let ((fmt (format "/%s%s%s%s%s"
> >> (if c-block-comment-flag "*" "/")
> >> (if c-electric-flag "l" "")
> >> (if (and c-electric-flag c-auto-newline)
> >> "a" "")
> >> (if c-hungry-delete-key "h" "")
> >> (if (and
> >> ;; (cc-)subword might not be loaded.
> >> (boundp 'c-subword-mode)
> >> (symbol-value 'c-subword-mode))
> >> ;; FIXME: subword-mode already comes with its
> >> ;; own lighter!
> >> "w"
> >> "")))
> >> This fixed "/" in the modeline string forces this submode lighter to be
> >> always present, .....
> > How? What mechanism do you mean?
> The lighter for c-mode changed from "C" to "C//" or "C/*".
> The lighter for c++-mode changed from "C++" to "C++//" or "C++/*".
The lighter for these modes has "always" included a "/" followed by
status letters, where "always" means for at least 15 years. The "*" or
second "/" is a recent innovation to indicate the current default form of
comments.
> Both of these changes do not allow me to omit the lighter, or to change
> it to something else without replacing the implementation of
> c-update-modeline.
The form of this section of the mode line matches the regexp
"/[/*]l?a?h?w?". Perhaps one of these packages could be enhanced to
handle regexps, if they can't already do so.
> >> .... and prevents the diminish or delight packages from being able to
> >> remove or replace this lighter.
> > I'm not familiar with either of these packages. How does the fixed "/"
> > prevent these packages from working?
> I've not found a way to get them to work with varying strings.
How about enhancing one of them to do so?
> >> Can this be fixed for emacs-26 ?
> > What do you mean by "fixed", here? What do you want to do with this
> > portion of the mode line, exactly?
> Allow the "//" or "/*" to be omitted entirely, or replaced with a
> different string as the lighter for those sub-modes.
With the first of my questions, I was really asking you how you want CC
Mode to be fixed. I think I now understand that you want to replace the
string.
> AndyM
--
Alan Mackenzie (Nuremberg, Germany).