bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#46611: Variables grep-window-height grep-scroll-output unused since


From: Stefan Monnier
Subject: bug#46611: Variables grep-window-height grep-scroll-output unused since Emacs 22.1?
Date: Thu, 18 Feb 2021 08:58:04 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

>     *** The new variables `grep-window-height' and `grep-scroll-output' 
> override
>     the corresponding compilation mode settings, for grep commands only.
>
> But if I'm not missing something, they were never actually part of Emacs
> 22.1, due to this commit:
>
>     commit ab55f76f9ca670e3f41e4cfabeb35426f6b24fb6
>     Author: Stefan Monnier <monnier@iro.umontreal.ca>
>     Date:   Thu Mar 11 22:56:19 2004 +0000
>
>         (kill-grep): Move here from compile.el
>         (grep-error, grep-hit-face, grep-error-face)
>         (grep-mode-font-lock-keywords): New variables.
>         (grep-regexp-alist): Simplify regexp and add `binary' case.
>         (grep-mode): New mode.
>         (grep-process-setup): Simplify.
>     [...]
>     -  (if grep-window-height
>     -      (set (make-local-variable 'compilation-window-height)
>     -      grep-window-height))
>     -  (set (make-local-variable 'compile-auto-highlight)
>     -       grep-auto-highlight)
>     -  (set (make-local-variable 'compilation-scroll-output)
>     -       grep-scroll-output)
>
> Stefan, do you remember any of this?  Were they removed intentionally?

I think so, yes.  It's because `define-compilation-mode` should take
care of them:

    (defmacro define-compilation-mode (mode name doc &rest body)
      "This is like `define-derived-mode' without the PARENT argument.
    The parent is always `compilation-mode' and the customizable 
`compilation-...'
    variables are also set from the name of the mode you have chosen,
    by replacing the first word, e.g., `compilation-scroll-output' from
    `grep-scroll-output' if that variable exists."
      (let ((mode-name (replace-regexp-in-string "-mode\\'" "" (symbol-name 
mode))))
        `(define-derived-mode ,mode compilation-mode ,name
           ,doc
           ,@(mapcar (lambda (v)
                       (let ((mv (intern (replace-regexp-in-string
                                          "\\`compilation" mode-name
                                                   (symbol-name v)))))
                         `(if (boundp ',mv) (setq-local ,v ,mv))))
                     '(compilation-directory-matcher
                       compilation-error
                       compilation-error-regexp-alist
                       compilation-error-regexp-alist-alist
                       compilation-error-screen-columns
                       compilation-finish-functions
                       compilation-first-column
                       compilation-mode-font-lock-keywords
                       compilation-page-delimiter
                       compilation-parse-errors-filename-function
                       compilation-process-setup-function
                       compilation-scroll-output
                       compilation-search-path
                       compilation-skip-threshold
                       compilation-window-height))
           ,@body)))


-- Stefan






reply via email to

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