From: Alan Mackenzie <acm@muc.de>
To: Chong Yidong <cyd@stupidchicken.com>
Cc: "Jan Djärv" <jan.h.d@swipnet.se>, emacs-devel@gnu.org
Subject: Re: Blunderbuss ".dir-locals.el" raises everything in its path!!
Date: Sun, 12 Jul 2009 21:21:03 +0000 [thread overview]
Message-ID: <20090712212103.GB1009@muc.de> (raw)
In-Reply-To: <87k52dycha.fsf@stupidchicken.com>
Hi, Yidong!
On Sun, Jul 12, 2009 at 02:37:05PM -0400, Chong Yidong wrote:
> Alan Mackenzie <acm@muc.de> writes:
> >> I'm not sure I understand. Directory-local variables are processed
> >> right before file-local variables, and can be overridden by them.
> > Sorry, yes. But that's the only thing they can be overridden by. That
> > is surely not the right thing.
> > Why on earth does .dir-locals.el take precedence over values set in a
> > top-level `setq' or `c-mode-hook'? This is surely the Wrong Thing to
> > do.
> Because setting a directory-local variable is supposed to have the same
> effect as setting a file-local variable inside every file in that
> directory. Thus, instead of putting c-fill-style inside every .c file
> in the Emacs source tree, you can simply write a .dir-locals.el file.
> > In particular, the File Style and local variables settings are rarely
> > used precision instruments, for configuring unusual files unusually.
> This indicates that we should not set c-file-style in the .dir-locals.el
> file of the Emacs source tree.
That's fine by me! As well as amending that file, I've juiced up the doc
strings in the two pertinent CC Mode variables, and put some stuff into
the Emacs and Elisp manuals.
I'd be grateful for somebody checking my prose.
Incidentally, I've expanded the inane sentence that says that (project)
files are kept in directories. I think most people knew that already.
;-)
Index: .dir-locals.el
===================================================================
RCS file: /cvsroot/emacs/emacs/.dir-locals.el,v
retrieving revision 1.6
diff -c -r1.6 .dir-locals.el
*** .dir-locals.el 14 Jan 2009 23:16:12 -0000 1.6
--- .dir-locals.el 12 Jul 2009 21:09:42 -0000
***************
*** 1,6 ****
((nil . ((tab-width . 8)
(fill-column . 70)))
- (c-mode . ((c-file-style . "GNU")))
(change-log-mode . ((add-log-time-zone-rule . t)
(fill-column . 74)
(bug-reference-url-format
--- 1,5 ----
Index: doc/emacs/custom.texi
===================================================================
RCS file: /cvsroot/emacs/emacs/doc/emacs/custom.texi,v
retrieving revision 1.22
diff -c -r1.22 custom.texi
*** doc/emacs/custom.texi 4 Jun 2009 03:13:28 -0000 1.22
--- doc/emacs/custom.texi 12 Jul 2009 21:09:44 -0000
***************
*** 1267,1279 ****
@cindex per-directory local variables
A @dfn{project} is a collection of files on which you work together.
! Usually, the project's files are kept in one or more directories.
! Occasionally, you may wish to define Emacs settings that are common to
! all the files that belong to the project.
Emacs provides two ways to specify settings that are applicable to
files in a specific directory: you can put a special file in that
! directory, or you can define a @dfn{project class} for that directory.
@cindex @file{.dir-locals.el} file
If you put a file with a special name @file{.dir-locals.el}@footnote{
--- 1267,1288 ----
@cindex per-directory local variables
A @dfn{project} is a collection of files on which you work together.
! Usually, the project's files are kept in one or more directories of
! their own. Occasionally, you may wish to define Emacs settings that
! are common to all the files that belong to the project.
Emacs provides two ways to specify settings that are applicable to
files in a specific directory: you can put a special file in that
! directory, or you can define a @dfn{project class} for that
! directory.
!
! Note that Emacs applies these settings for each file it loads, after
! having initialized the file's major mode and run the mode hook. These
! settings can override those made by a user in his .emacs, possibly in
! a mode hook, so you should be careful not to set variables which are a
! matter of personal choice. You should probably not set
! @code{c-file-syle} and @code{c-file-offsets} here (@pxref{File
! Styles,,,ccmode}).
@cindex @file{.dir-locals.el} file
If you put a file with a special name @file{.dir-locals.el}@footnote{
***************
*** 1302,1309 ****
((nil . ((indent-tabs-mode . t)
(tab-width . 4)
(fill-column . 80)))
- (c-mode . ((c-file-style . "BSD")))
- (java-mode . ((c-file-style . "BSD")))
("src/imported"
. ((nil . ((change-log-default-name . "ChangeLog.local"))))))
@end example
--- 1311,1316 ----
Index: doc/lispref/variables.texi
===================================================================
RCS file: /cvsroot/emacs/emacs/doc/lispref/variables.texi,v
retrieving revision 1.19
diff -c -r1.19 variables.texi
*** doc/lispref/variables.texi 17 Jun 2009 02:58:57 -0000 1.19
--- doc/lispref/variables.texi 12 Jul 2009 21:09:53 -0000
***************
*** 1703,1708 ****
--- 1703,1716 ----
variables: by putting them in a special file, or by defining a
@dfn{project class} for that directory.
+ Note that Emacs applies these settings for each file it loads, after
+ having initialized the file's major mode and run the mode hook
+ (@pxref{Mode Hooks}). These settings can override those made by a
+ user in his .emacs, possibly in a mode hook, so you should be careful
+ not to set variables which are a matter of personal choice. You
+ should probably not set @code{c-file-syle} and @code{c-file-offsets}
+ here (@pxref{File Styles,,,ccmode}).
+
@defvr Constant dir-locals-file
This constant is the name of the file where Emacs expects to find the
directory-local variables. The name of the file is
Index: lisp/progmodes/cc-vars.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/progmodes/cc-vars.el,v
retrieving revision 1.73
diff -c -r1.73 cc-vars.el
*** lisp/progmodes/cc-vars.el 30 Apr 2009 10:36:24 -0000 1.73
--- lisp/progmodes/cc-vars.el 12 Jul 2009 21:09:55 -0000
***************
*** 1608,1613 ****
--- 1608,1618 ----
string suitable for `c-set-style'. When the file is visited, CC Mode
will set the style of the file to this value automatically.
+ Don't use this variable anywhere but a file's Local Variable section.
+ You probably don't want to use this in a .dir-locals.el file, since
+ this would nullify any explicit settings of style variables at the
+ top level or in hooks.
+
Note that file style settings are applied before file offset settings
as designated in the variable `c-file-offsets'.")
(make-variable-buffer-local 'c-file-style)
***************
*** 1620,1625 ****
--- 1625,1635 ----
When the file is visited, CC Mode will institute these offset settings
automatically.
+ Don't use this variable anywhere but a file's Local Variable section.
+ You probably don't want to use this in a .dir-locals.el file, since
+ this would nullify any explicit settings of style variables at the
+ top level or in hooks.
+
Note that file offset settings are applied after file style settings
as designated in the variable `c-file-style'.")
(make-variable-buffer-local 'c-file-offsets)
Goodnight!
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2009-07-12 21:21 UTC|newest]
Thread overview: 288+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-12 14:41 Blunderbuss ".dir-locals.el" raises everything in its path!! Alan Mackenzie
2009-07-12 16:39 ` Chong Yidong
2009-07-12 18:06 ` Alan Mackenzie
2009-07-12 18:30 ` David De La Harpe Golden
2009-07-12 21:39 ` Alan Mackenzie
2009-07-12 22:22 ` Lennart Borgman
2009-07-13 7:36 ` Alan Mackenzie
2009-07-13 7:50 ` Lennart Borgman
2009-07-17 0:18 ` Add file-locals and dir-locals (was: Blunderbuss ".dir-locals.el" raises everything in its path!!) Juri Linkov
2009-07-17 7:57 ` Add file-locals and dir-locals martin rudalics
2009-07-17 9:43 ` Juri Linkov
2009-07-18 13:48 ` martin rudalics
2009-07-18 21:54 ` Juri Linkov
2009-07-19 10:38 ` martin rudalics
2009-07-19 18:12 ` Juri Linkov
2009-07-20 12:30 ` Leo
2009-07-22 0:21 ` Juri Linkov
2009-07-22 3:49 ` Leo
2009-08-04 23:59 ` Juri Linkov
2009-08-05 1:57 ` Leo
2009-08-05 21:52 ` Juri Linkov
2009-08-05 23:14 ` Leo
2009-08-06 20:36 ` Juri Linkov
2009-08-07 1:18 ` Leo
2009-08-08 8:18 ` Dan Nicolaescu
2009-08-08 11:28 ` Juri Linkov
2009-08-08 19:31 ` Stefan Monnier
2009-08-08 20:43 ` Juri Linkov
2009-08-08 21:26 ` Leo
2009-08-08 21:45 ` Juri Linkov
2009-08-08 21:58 ` Drew Adams
2009-08-09 3:15 ` Eli Zaretskii
2009-08-09 8:29 ` Stephen J. Turnbull
2009-08-09 1:21 ` Stefan Monnier
2009-07-17 15:48 ` David Kastrup
2009-07-17 23:06 ` Juri Linkov
2009-07-12 18:37 ` Blunderbuss ".dir-locals.el" raises everything in its path!! Chong Yidong
2009-07-12 21:21 ` Alan Mackenzie [this message]
2009-07-12 21:33 ` Lennart Borgman
2009-07-12 21:45 ` Alan Mackenzie
2009-07-12 21:48 ` Lennart Borgman
2009-07-13 3:23 ` Stephen J. Turnbull
2009-07-13 3:51 ` Lennart Borgman
2009-07-13 5:07 ` tomas
2009-07-13 3:23 ` Giorgos Keramidas
2009-07-13 7:16 ` Alan Mackenzie
2009-07-13 4:24 ` Chong Yidong
2009-07-13 4:37 ` Miles Bader
2009-07-13 6:22 ` Stephen J. Turnbull
2009-07-13 8:19 ` Alan Mackenzie
2009-07-13 8:45 ` Miles Bader
2009-07-13 13:13 ` Chong Yidong
2009-07-13 15:05 ` Miles Bader
2009-07-13 9:18 ` Ken Raeburn
2009-07-13 10:47 ` Jason Rumney
2009-07-13 11:42 ` Stephen J. Turnbull
2009-07-13 15:11 ` Lennart Borgman
2009-07-13 8:25 ` Alan Mackenzie
2009-07-13 8:48 ` Miles Bader
2009-07-13 9:25 ` Chad Brown
2009-07-13 20:03 ` Juri Linkov
2009-07-13 21:15 ` Lennart Borgman
2009-07-14 0:44 ` Stefan Monnier
2009-07-16 0:30 ` Juri Linkov
2009-07-16 13:53 ` Stefan Monnier
2009-07-16 20:48 ` Juri Linkov
2009-07-16 21:11 ` Lennart Borgman
2009-07-17 3:01 ` Stefan Monnier
2009-07-17 9:42 ` Juri Linkov
2009-07-18 21:55 ` Juri Linkov
2009-07-13 9:26 ` Ken Raeburn
2009-07-13 2:08 ` Dan Nicolaescu
2009-07-13 5:09 ` Jason Rumney
2009-07-13 8:41 ` Alan Mackenzie
2009-07-14 16:22 ` Alan Mackenzie
2009-07-14 18:26 ` Stefan Monnier
2009-07-14 20:11 ` Patch: " Alan Mackenzie
2009-07-15 7:55 ` Jan Djärv
2009-07-15 19:00 ` Alan Mackenzie
2009-07-15 20:20 ` Stefan Monnier
2009-07-15 20:49 ` Chong Yidong
2009-07-18 12:51 ` Alan Mackenzie
2009-07-20 9:40 ` Jan Djärv
2009-07-20 19:43 ` Alan Mackenzie
2009-07-20 21:20 ` Jan Djärv
2009-07-14 0:32 ` Stefan Monnier
2009-07-14 6:04 ` Stephen J. Turnbull
2009-07-14 6:58 ` Jan Djärv
2009-07-14 14:05 ` Davis Herring
2009-07-14 15:13 ` Alan Mackenzie
2009-07-14 15:45 ` Davis Herring
2009-07-14 19:47 ` Miles Bader
2009-07-16 0:31 ` Juri Linkov
2009-07-16 16:43 ` Drew Adams
2009-07-16 18:38 ` Stefan Monnier
2009-07-16 18:47 ` Lennart Borgman
2009-07-16 20:59 ` Juri Linkov
2009-07-16 21:19 ` Drew Adams
2009-07-16 21:29 ` Lennart Borgman
2009-07-16 22:00 ` Drew Adams
2009-07-16 20:09 ` Infrastructural complexity. [Was: Blunderbuss ".dir-locals.el" raises everything in its path!!] Alan Mackenzie
2009-07-16 20:36 ` Lennart Borgman
2009-07-16 20:57 ` Infrastructural complexity Juri Linkov
2009-07-16 21:28 ` Chong Yidong
2009-07-16 21:33 ` Lennart Borgman
2009-07-16 22:00 ` Drew Adams
2009-07-16 22:14 ` Lennart Borgman
2009-07-16 22:25 ` Drew Adams
2009-07-16 22:30 ` Lennart Borgman
2009-07-16 22:38 ` Drew Adams
2009-07-16 22:43 ` Lennart Borgman
2009-07-16 22:49 ` Thomas Lord
2009-07-16 22:54 ` Lennart Borgman
2009-07-16 23:44 ` Thomas Lord
2009-07-17 0:30 ` Lennart Borgman
2009-07-17 1:18 ` Thomas Lord
2009-07-17 1:29 ` Lennart Borgman
2009-07-17 2:21 ` Thomas Lord
2009-07-17 2:24 ` Lennart Borgman
2009-07-17 2:44 ` Thomas Lord
2009-07-17 2:47 ` Lennart Borgman
2009-07-17 17:41 ` joakim
2009-07-17 18:46 ` Chong Yidong
2009-07-17 20:13 ` joakim
2009-07-17 23:02 ` Thomas Lord
2009-07-17 23:49 ` Chong Yidong
2009-07-18 0:29 ` joakim
2009-07-20 2:38 ` Thomas Lord
2009-07-20 4:59 ` Miles Bader
2009-07-20 7:31 ` Thomas Lord
2009-07-18 0:05 ` joakim
2009-07-18 0:21 ` Lennart Borgman
2009-07-18 0:36 ` Leo
2009-07-18 22:06 ` Juri Linkov
2009-07-19 13:21 ` Leo
2009-07-19 15:10 ` Miles Bader
2009-07-19 20:05 ` Thomas Lord
2009-07-18 8:18 ` joakim
2009-07-18 17:11 ` Richard Stallman
2009-07-18 22:05 ` Juri Linkov
2009-07-19 0:07 ` Lennart Borgman
2009-07-19 18:23 ` Juri Linkov
2009-07-19 20:18 ` Thomas Lord
2009-07-19 20:57 ` Juri Linkov
2009-07-19 22:27 ` Thomas Lord
2009-07-20 0:00 ` Drew Adams
2009-07-19 21:56 ` Mathias Dahl
2009-07-19 22:21 ` Thomas Lord
2009-07-19 23:54 ` Drew Adams
2009-07-20 0:18 ` Thomas Lord
2009-07-19 23:58 ` Lennart Borgman
2009-07-20 0:50 ` Thomas Lord
2009-07-19 23:34 ` Drew Adams
2009-07-19 21:34 ` Lennart Borgman
2009-07-19 4:37 ` Richard Stallman
2009-07-19 1:14 ` Thomas Lord
2009-07-19 1:48 ` Lennart Borgman
2009-07-19 4:01 ` Thomas Lord
2009-07-20 5:45 ` 16 (Re: Infrastructural complexity.) Thomas Lord
2009-07-20 6:23 ` Thomas Lord
2009-07-20 9:09 ` Thomas Lord
2009-07-20 6:47 ` Lennart Borgman
2009-07-20 7:28 ` Thomas Lord
2009-07-20 7:34 ` Lennart Borgman
2009-07-20 7:38 ` Thomas Lord
2009-07-19 10:38 ` Infrastructural complexity martin rudalics
2009-07-19 11:12 ` joakim
2009-07-19 15:08 ` Miles Bader
2009-07-20 9:32 ` martin rudalics
2009-07-20 14:18 ` Miles Bader
2009-07-20 15:32 ` martin rudalics
2009-07-20 16:00 ` Chong Yidong
2009-07-20 16:30 ` Miles Bader
2009-07-20 19:02 ` martin rudalics
2009-07-20 22:08 ` Miles Bader
2009-07-20 22:45 ` Lennart Borgman
2009-07-20 23:00 ` Thomas Lord
2009-07-21 9:39 ` martin rudalics
2009-07-21 10:28 ` Miles Bader
2009-07-21 13:26 ` martin rudalics
2009-07-21 16:13 ` Stefan Monnier
2009-07-21 17:17 ` Thomas Lord
2009-07-21 17:25 ` martin rudalics
2009-07-22 14:34 ` Stefan Monnier
2009-07-22 14:59 ` martin rudalics
2009-07-22 18:25 ` Stefan Monnier
2009-07-23 9:26 ` martin rudalics
2009-07-23 15:12 ` Stefan Monnier
2009-07-23 15:24 ` Lennart Borgman
2009-07-23 17:40 ` martin rudalics
2009-07-23 18:56 ` Thomas Lord
2009-07-23 19:13 ` joakim
2009-07-23 20:49 ` Stefan Monnier
2009-07-24 8:29 ` martin rudalics
2009-07-25 4:55 ` Richard Stallman
2009-07-25 8:54 ` martin rudalics
2009-07-25 14:48 ` Stefan Monnier
2009-07-25 17:11 ` martin rudalics
2009-07-26 14:15 ` Stefan Monnier
2009-07-26 15:13 ` martin rudalics
2009-07-21 17:06 ` Thomas Lord
2009-07-22 10:12 ` martin rudalics
2009-07-22 15:32 ` Thomas Lord
2009-07-22 17:07 ` Mathias Dahl
2009-07-21 16:59 ` Thomas Lord
2009-07-21 17:25 ` martin rudalics
2009-07-21 18:15 ` Thomas Lord
2009-07-22 10:12 ` martin rudalics
2009-07-22 16:28 ` Thomas Lord
2009-07-22 18:23 ` martin rudalics
2009-07-22 19:04 ` Thomas Lord
2009-07-23 9:24 ` martin rudalics
2009-07-23 18:51 ` Thomas Lord
2009-07-23 19:17 ` joakim
2009-07-23 19:49 ` Lennart Borgman
2009-07-23 20:35 ` joakim
2009-07-24 1:08 ` Stefan Monnier
2009-07-24 1:20 ` Thomas Lord
2009-07-24 8:28 ` martin rudalics
2009-07-24 11:21 ` Lennart Borgman
2009-07-24 12:10 ` martin rudalics
2009-07-24 14:20 ` Lennart Borgman
2009-07-24 14:55 ` AW: " klaus.berndl
2009-07-24 16:09 ` martin rudalics
2009-07-24 18:37 ` Thomas Lord
2009-07-25 4:16 ` AW: " klaus.berndl
2009-07-25 8:06 ` Miles Bader
2009-07-25 21:13 ` Thomas Lord
2009-07-24 16:08 ` martin rudalics
2009-07-24 16:16 ` Lennart Borgman
2009-07-24 17:13 ` martin rudalics
2009-07-25 1:27 ` Lennart Borgman
2009-07-25 8:53 ` martin rudalics
2009-07-24 8:28 ` martin rudalics
2009-07-24 18:31 ` Thomas Lord
2009-07-25 8:52 ` martin rudalics
2009-07-25 14:50 ` Stefan Monnier
2009-07-25 17:12 ` martin rudalics
2009-07-26 14:19 ` Stefan Monnier
2009-07-26 15:14 ` martin rudalics
2009-07-26 17:18 ` Thomas Lord
2009-07-26 17:45 ` martin rudalics
2009-07-26 18:34 ` Thomas Lord
2009-07-27 6:40 ` martin rudalics
[not found] ` <1248710762.6165.28.camel@dell-desktop.example.co! ! m>
2009-07-27 16:06 ` Thomas Lord
2009-07-27 16:53 ` martin rudalics
2009-07-27 17:40 ` Drew Adams
[not found] ` <4A6DEC6! 4.10001@gmx.at>
[not found] ` <D86752FEC8404739B257327FE0FE8FE6@us.orac! ! le.com>
[not found] ` <4A6DEC6!4.10001@gmx.at>
2009-07-27 18:05 ` martin rudalics
2009-07-27 18:40 ` Drew Adams
2009-07-28 7:39 ` martin rudalics
2009-07-28 15:21 ` Drew Adams
2009-07-29 9:06 ` martin rudalics
2009-07-27 18:05 ` Thomas Lord
2009-07-28 7:38 ` martin rudalics
2009-07-28 15:18 ` Thomas Lord
2009-07-29 9:06 ` martin rudalics
2009-07-29 19:22 ` Thomas Lord
2009-07-30 9:07 ` martin rudalics
2009-07-30 17:01 ` Thomas Lord
2009-07-31 9:08 ` martin rudalics
2009-07-31 16:19 ` Thomas Lord
2009-07-31 16:58 ` martin rudalics
2009-07-31 17:53 ` Thomas Lord
2009-07-22 19:05 ` Thomas Lord
2009-07-23 9:24 ` martin rudalics
2009-07-18 13:49 ` martin rudalics
2009-07-16 21:48 ` Juri Linkov
2009-07-18 13:48 ` martin rudalics
2009-07-18 21:57 ` Juri Linkov
2009-07-19 0:09 ` Lennart Borgman
2009-07-19 5:00 ` Stefan Monnier
2009-07-19 10:38 ` martin rudalics
2009-07-19 13:06 ` Lennart Borgman
2009-07-19 18:31 ` Juri Linkov
2009-07-19 21:36 ` Lennart Borgman
2009-07-19 23:11 ` Juri Linkov
2009-07-19 23:52 ` Lennart Borgman
2009-07-20 9:32 ` martin rudalics
2009-07-20 14:22 ` Lennart Borgman
2009-07-20 18:29 ` Stefan Monnier
2009-07-19 23:14 ` Juri Linkov
2009-07-20 9:33 ` martin rudalics
2009-07-22 0:38 ` Juri Linkov
2009-07-22 2:24 ` Lennart Borgman
2009-07-22 10:12 ` martin rudalics
2009-07-22 14:36 ` Stefan Monnier
2009-07-14 18:21 ` Blunderbuss ".dir-locals.el" raises everything in its path!! Stefan Monnier
2009-07-13 0:02 ` Miles Bader
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090712212103.GB1009@muc.de \
--to=acm@muc.de \
--cc=cyd@stupidchicken.com \
--cc=emacs-devel@gnu.org \
--cc=jan.h.d@swipnet.se \
/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.
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.