unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
Subject: RE: Changing Color Of Column # In Modeline
Date: Wed, 23 Nov 2005 22:21:33 -0800	[thread overview]
Message-ID: <DNEMKBNJBGPAOPIJOOICOEDJCPAA.drew.adams@oracle.com> (raw)
In-Reply-To: <1132791604.697417.9830@g49g2000cwa.googlegroups.com>

    I was having similar problems.  I'm using v21 as well.  But how do you
    use what you're proposing?  I added it to my init file, then evaluated,
    then toggled my major-mode (tcl-mode in this case).  Nothing happened.
    What am I missing?

The code I sent, like the code that MJF sent, requires Emacs 22, because it
uses variable `mode-line-position'. What I said wrt Emacs 21 was that you
could do something similar in Emacs 21, using variable `mode-line-format'
instead of `mode-line-position'.

The following works in Emacs 21. I just took the default value for
`mode-line-format' (defined in bindings.el), wrapped it in (:eval...), and
added the conditional face expression for `column-number-mode'.

(defcustom my-column-limit 70
  "When current column is > this, column is highlighted in mode-line."
  :type 'integer :group 'convenience)

(setq mode-line-format
      '(:eval
        (let* ((help-echo
                "mouse-1: select window, mouse-2: \
delete others, mouse-3: delete ...")
               (dashes (propertize "--" 'help-echo help-echo)))
          (list
           (propertize "-" 'help-echo help-echo)
           'mode-line-mule-info
           'mode-line-modified
           'mode-line-frame-identification
           'mode-line-buffer-identification
           (propertize "   " 'help-echo help-echo)
           'global-mode-string
           (propertize "   %[(" 'help-echo help-echo)
           '(:eval (mode-line-mode-name))
           'mode-line-process
           'minor-mode-alist
           (propertize "%n" 'help-echo "mouse-2: widen"
                       'local-map (make-mode-line-mouse-map
                                   'mouse-2 #'mode-line-widen))
           (propertize ")%]--" 'help-echo help-echo)
           `(which-func-mode ("" which-func-format ,dashes))
           `(line-number-mode
             (,(propertize "L%l" 'help-echo help-echo) ,dashes))
           `(column-number-mode
             (,(propertize
                "C%c"
                'face (and (> (current-column) 50) 'bold)
                'help-echo help-echo)
              ,dashes))
           `(-3 . ,(propertize "%p" 'help-echo help-echo))
           (propertize "-%-" 'help-echo help-echo)))))

Note: You could, alternatively, put the (:eval ...) around only the
column-number-mode stuff, but then you would also need to substitute the
values for `help-echo' and `dashes' (because they would be quoted inside the
'(:eval ...), so they wouldn't pick up the values from the `let'). IOW, you
could remove the (:eval ...) from around the `let' above, and do this in
place of the (column-number-mode...) stuff:

'(:eval `(column-number-mode
          (,(propertize
             "C%c"
             'face (and (> (current-column) 50) 'bold)
             'help-echo "mouse-1: select window,....")
           ,(propertize "--" 'help-echo "mouse-1: select window,..."))))

That's maybe (maybe not) a bit more understandable, if a bit redundant. If
you don't care about the `help-echo' strings, then that becomes much
simpler:

'(:eval `(column-number-mode
          (,(propertize "C%c" 'face (and (> (current-column) 50) 'bold))
           "--")))

And don't forget to turn on `column-number-mode': (column-number-mode 1)
;-).

HTH. - Drew

  reply	other threads:[~2005-11-24  6:21 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-22  1:07 Changing Color Of Column # In Modeline gamename
2005-11-22  6:26 ` M Jared Finder
2005-11-22 17:24 ` rgb
2005-11-22 21:02   ` gamename
2005-11-23  1:21     ` M Jared Finder
2005-11-23 20:32       ` Kevin Rodgers
2005-11-23 21:08         ` Drew Adams
     [not found]         ` <mailman.16497.1132780124.20277.help-gnu-emacs@gnu.org>
2005-11-24  0:20           ` gamename
2005-11-24  6:21             ` Drew Adams [this message]
     [not found]             ` <mailman.16559.1132813301.20277.help-gnu-emacs@gnu.org>
2005-11-25 23:03               ` gamename
2005-11-26  0:01                 ` Drew Adams
2005-11-26 18:33               ` gamename
2005-11-26 18:53                 ` Drew Adams
     [not found]                 ` <mailman.16824.1133031197.20277.help-gnu-emacs@gnu.org>
2005-11-27  0:25                   ` gamename
2005-11-22 23:09   ` Ilya Zakharevich
2005-11-25 17:55     ` rgb
2005-11-25 18:54       ` Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DNEMKBNJBGPAOPIJOOICOEDJCPAA.drew.adams@oracle.com \
    --to=drew.adams@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).