unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Question about dir-locals c-mode.
       [not found] <20201107235056.5lwabkhbflx2gc6o.ref@Ergus>
@ 2020-11-07 23:50 ` Ergus
  2020-11-08  6:22   ` Jean Louis
                     ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Ergus @ 2020-11-07 23:50 UTC (permalink / raw)
  To: help-gnu-emacs

Hi:

This is probably a basic question, but I don't find any reference.

I have a .dir-locals.el file a bit long because the project implied is a
bit special regarding indentation. The problem is that the project is
either C and C++ code and the indentation in both cases is retty much
the same; but other files like python, bash or makefiles require
different indentation.

I am wondering if it is possible in the dir-locals to set a
configuration either for C and C++ without repeating myself.

Up to now I have:

(c++-mode . (...Long...))
(c-mode . (...Long...))

But everytime I update the C config I have to copy and paste in the
other...

is it possible to do something equivalent to:

((or c-mode c++-mode) . (...Long...))

Thanks in advance,
Ergus



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

* Re: Question about dir-locals c-mode.
  2020-11-07 23:50 ` Question about dir-locals c-mode Ergus
@ 2020-11-08  6:22   ` Jean Louis
  2020-11-08 13:39   ` Daniel Martín
  2020-11-08 14:50   ` Stefan Monnier
  2 siblings, 0 replies; 6+ messages in thread
From: Jean Louis @ 2020-11-08  6:22 UTC (permalink / raw)
  To: Ergus; +Cc: help-gnu-emacs

* Ergus <spacibba@aol.com> [2020-11-08 02:52]:
> Hi:
> 
> This is probably a basic question, but I don't find any reference.
> 
> I have a .dir-locals.el file a bit long because the project implied is a
> bit special regarding indentation. The problem is that the project is
> either C and C++ code and the indentation in both cases is retty much
> the same; but other files like python, bash or makefiles require
> different indentation.

Did you try with local file variables?

M-x add-file-local-variable




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

* Re: Question about dir-locals c-mode.
  2020-11-07 23:50 ` Question about dir-locals c-mode Ergus
  2020-11-08  6:22   ` Jean Louis
@ 2020-11-08 13:39   ` Daniel Martín
  2020-11-08 14:50   ` Stefan Monnier
  2 siblings, 0 replies; 6+ messages in thread
From: Daniel Martín @ 2020-11-08 13:39 UTC (permalink / raw)
  To: Ergus; +Cc: help-gnu-emacs

Ergus <spacibba@aol.com> writes:

> Hi:
>
> This is probably a basic question, but I don't find any reference.
>
> I have a .dir-locals.el file a bit long because the project implied is a
> bit special regarding indentation. The problem is that the project is
> either C and C++ code and the indentation in both cases is retty much
> the same; but other files like python, bash or makefiles require
> different indentation.
>
> I am wondering if it is possible in the dir-locals to set a
> configuration either for C and C++ without repeating myself.
>
> Up to now I have:
>
> (c++-mode . (...Long...))
> (c-mode . (...Long...))
>
> But everytime I update the C config I have to copy and paste in the
> other...
>
> is it possible to do something equivalent to:
>
> ((or c-mode c++-mode) . (...Long...))
>
> Thanks in advance,
> Ergus

There's no special syntax to match several major modes in
.dir-locals.el.  One alternative is to put your C and C++ configuration
under prog-mode and add specific entries for Python, Bash and Makefiles
modes.

Another alternative may be to use the "eval" variable to call a common
function that sets the file-local variables. Something like:

((c++-mode . ((eval . (apply-common-c-configuration))))
 (c-mode . ((eval . (apply-common-c-configuration)))))



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

* Re: Question about dir-locals c-mode.
  2020-11-07 23:50 ` Question about dir-locals c-mode Ergus
  2020-11-08  6:22   ` Jean Louis
  2020-11-08 13:39   ` Daniel Martín
@ 2020-11-08 14:50   ` Stefan Monnier
  2020-11-08 16:16     ` Ergus
  2 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2020-11-08 14:50 UTC (permalink / raw)
  To: help-gnu-emacs

> Up to now I have:
>
> (c++-mode . (...Long...))
> (c-mode . (...Long...))

FWIW, I had sent a patch to CC-mode to introduce a parent mode shared by
c-mode, c++-mode, and objc-mode, but Alan didn't like the idea.


        Stefan




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

* Re: Question about dir-locals c-mode.
  2020-11-08 14:50   ` Stefan Monnier
@ 2020-11-08 16:16     ` Ergus
  2020-11-08 17:58       ` Stefan Monnier
  0 siblings, 1 reply; 6+ messages in thread
From: Ergus @ 2020-11-08 16:16 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: help-gnu-emacs

On Sun, Nov 08, 2020 at 09:50:38AM -0500, Stefan Monnier wrote:
>> Up to now I have:
>>
>> (c++-mode . (...Long...))
>> (c-mode . (...Long...))
>
>FWIW, I had sent a patch to CC-mode to introduce a parent mode shared by
>c-mode, c++-mode, and objc-mode, but Alan didn't like the idea.
>
>
>        Stefan
:( There is the c-mode-common-hook I was actually expecting that there
should be something like c-mode-common. Somehow it seems intuitive for
me. Some packages like irony have actually some hacks to go around this
too.



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

* Re: Question about dir-locals c-mode.
  2020-11-08 16:16     ` Ergus
@ 2020-11-08 17:58       ` Stefan Monnier
  0 siblings, 0 replies; 6+ messages in thread
From: Stefan Monnier @ 2020-11-08 17:58 UTC (permalink / raw)
  To: Ergus; +Cc: help-gnu-emacs

>>> (c++-mode . (...Long...))
>>> (c-mode . (...Long...))
>>FWIW, I had sent a patch to CC-mode to introduce a parent mode shared by
>>c-mode, c++-mode, and objc-mode, but Alan didn't like the idea.
> :( There is the c-mode-common-hook I was actually expecting that there
> should be something like c-mode-common. Somehow it seems intuitive for
> me. Some packages like irony have actually some hacks to go around this
> too.

Note that `c-mode-common-hook` is not just common to C-like languages
but applies to all modes using the CC-mode framework, which includes
java-mode, awk-mode, php-mode, sieve-mode, and various others.  So it
risks being "too common" for the kind of usage you describe (and yes, my
patch had two parent modes: one common to C, C++, and ObjC, and another
one on top common to all CC-mode derivatives).


        Stefan




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

end of thread, other threads:[~2020-11-08 17:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20201107235056.5lwabkhbflx2gc6o.ref@Ergus>
2020-11-07 23:50 ` Question about dir-locals c-mode Ergus
2020-11-08  6:22   ` Jean Louis
2020-11-08 13:39   ` Daniel Martín
2020-11-08 14:50   ` Stefan Monnier
2020-11-08 16:16     ` Ergus
2020-11-08 17:58       ` Stefan Monnier

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