emacs-devel
[Top][All Lists]
Advanced

[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).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]