all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#15658: 24.1; (wishlist) Easy way to make a file-local variable also permanent-local
@ 2013-10-19 22:15 yary
  2022-05-10 15:14 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: yary @ 2013-10-19 22:15 UTC (permalink / raw)
  To: 15658

There are occasional needs to preserve buffer-local variables across
major-mode changes. In the specific case of directory-local variables,
an automated solution looks to be feasible, see "bug#15577: 24.3;
dir-local variables not applied when switching major-mode"

File-local variables on the other hand are not as easy to categorize as
to their intent- for a particular mode, vs the file contents in general.

I propose adding `permanent' as another special "variable name" (along
the lines of `mode', `eval', `coding', and `unibyte') to let people
mark the file variables they want to remain between mode changes. For
example:

; mode: Lisp
; fill-column: 75
; comment-column: 50
; permanent: fill-column tab-width

would set & keep fill-column at 75 between mode changes, and would
preserve between major-mode switches any changes to tab-width.

(There is one edge case with this proposal: what would `permanent: eval'
do? Re-evaluate all `eval' file variables after a mode change? And
`permanent: mode' would have to be ignored or give a warning.)


In GNU Emacs 24.1.1 (i386-mingw-nt5.1.2600)
 of 2012-06-10 on MARVIN
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.6) --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include'

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ENU
  value of $XMODIFIERS: nil
  locale-coding-system: cp1252
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#15658: 24.1; (wishlist) Easy way to make a file-local variable also permanent-local
  2013-10-19 22:15 bug#15658: 24.1; (wishlist) Easy way to make a file-local variable also permanent-local yary
@ 2022-05-10 15:14 ` Lars Ingebrigtsen
  2022-05-10 19:54   ` yary
  2022-05-11  4:05   ` Phil Sainty
  0 siblings, 2 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2022-05-10 15:14 UTC (permalink / raw)
  To: yary; +Cc: 15658

yary <not.com@gmail.com> writes:

> There are occasional needs to preserve buffer-local variables across
> major-mode changes. In the specific case of directory-local variables,
> an automated solution looks to be feasible, see "bug#15577: 24.3;
> dir-local variables not applied when switching major-mode"
>
> File-local variables on the other hand are not as easy to categorize as
> to their intent- for a particular mode, vs the file contents in general.
>
> I propose adding `permanent' as another special "variable name" (along
> the lines of `mode', `eval', `coding', and `unibyte') to let people
> mark the file variables they want to remain between mode changes. For
> example:
>
> ; mode: Lisp
> ; fill-column: 75
> ; comment-column: 50
> ; permanent: fill-column tab-width
>
> would set & keep fill-column at 75 between mode changes, and would
> preserve between major-mode switches any changes to tab-width.

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

With the following:

;; Local variables:
;; foo-var: t
;; end:

foo-var is set whenever I change the major mode.  Has the behaviour
changed here since Emacs 24.1?  (The earliest Emacs I have is Emacs
25.1.)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#15658: 24.1; (wishlist) Easy way to make a file-local variable also permanent-local
  2022-05-10 15:14 ` Lars Ingebrigtsen
@ 2022-05-10 19:54   ` yary
  2022-05-11 11:47     ` Lars Ingebrigtsen
  2022-05-11  4:05   ` Phil Sainty
  1 sibling, 1 reply; 5+ messages in thread
From: yary @ 2022-05-10 19:54 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 15658

I was working on this about 5 years ago, before 24.1, and the use case
I had for this doesn't apply to my current situation. So it might
already work as I wanted it, and my wants have changed! OK to close
this.

-y

On Tue, May 10, 2022 at 11:14 AM Lars Ingebrigtsen <larsi@gnus.org> wrote:
>
> yary <not.com@gmail.com> writes:
>
> > There are occasional needs to preserve buffer-local variables across
> > major-mode changes. In the specific case of directory-local variables,
> > an automated solution looks to be feasible, see "bug#15577: 24.3;
> > dir-local variables not applied when switching major-mode"
> >
> > File-local variables on the other hand are not as easy to categorize as
> > to their intent- for a particular mode, vs the file contents in general.
> >
> > I propose adding `permanent' as another special "variable name" (along
> > the lines of `mode', `eval', `coding', and `unibyte') to let people
> > mark the file variables they want to remain between mode changes. For
> > example:
> >
> > ; mode: Lisp
> > ; fill-column: 75
> > ; comment-column: 50
> > ; permanent: fill-column tab-width
> >
> > would set & keep fill-column at 75 between mode changes, and would
> > preserve between major-mode switches any changes to tab-width.
>
> (I'm going through old bug reports that unfortunately weren't resolved
> at the time.)
>
> With the following:
>
> ;; Local variables:
> ;; foo-var: t
> ;; end:
>
> foo-var is set whenever I change the major mode.  Has the behaviour
> changed here since Emacs 24.1?  (The earliest Emacs I have is Emacs
> 25.1.)
>
> --
> (domestic pets only, the antidote for overdose, milk.)
>    bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#15658: 24.1; (wishlist) Easy way to make a file-local variable also permanent-local
  2022-05-10 15:14 ` Lars Ingebrigtsen
  2022-05-10 19:54   ` yary
@ 2022-05-11  4:05   ` Phil Sainty
  1 sibling, 0 replies; 5+ messages in thread
From: Phil Sainty @ 2022-05-11  4:05 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: yary, 15658

On 2022-05-11 03:14, Lars Ingebrigtsen wrote:
> foo-var is set whenever I change the major mode.  Has the behaviour
> changed here since Emacs 24.1?  (The earliest Emacs I have is Emacs
> 25.1.)

This changed in `normal-mode' in 26.1 for bug #23460, so I'd expect
testing to have been different in 25.1.

The relevant NEWS entry is:

** File local and directory local variables are now initialized each
time the major mode is set, not just when the file is first visited.
These local variables will thus not vanish on setting a major mode.






^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#15658: 24.1; (wishlist) Easy way to make a file-local variable also permanent-local
  2022-05-10 19:54   ` yary
@ 2022-05-11 11:47     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2022-05-11 11:47 UTC (permalink / raw)
  To: yary; +Cc: 15658

yary <not.com@gmail.com> writes:

> I was working on this about 5 years ago, before 24.1, and the use case
> I had for this doesn't apply to my current situation. So it might
> already work as I wanted it, and my wants have changed! OK to close
> this.

Phil Sainty <psainty@orcon.net.nz> writes:

> This changed in `normal-mode' in 26.1 for bug #23460, so I'd expect
> testing to have been different in 25.1.
>
> The relevant NEWS entry is:
>
> ** File local and directory local variables are now initialized each
> time the major mode is set, not just when the file is first visited.
> These local variables will thus not vanish on setting a major mode.

Thanks; there doesn't seem to be anything more to do here, then, and I'm
closing this bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-05-11 11:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-19 22:15 bug#15658: 24.1; (wishlist) Easy way to make a file-local variable also permanent-local yary
2022-05-10 15:14 ` Lars Ingebrigtsen
2022-05-10 19:54   ` yary
2022-05-11 11:47     ` Lars Ingebrigtsen
2022-05-11  4:05   ` Phil Sainty

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.