[Top][All Lists]

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

Re: distinguish .h files

From: Tassilo Horn
Subject: Re: distinguish .h files
Date: Thu, 21 Oct 2010 12:37:30 +0200
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/24.0.50 (gnu/linux)

Oleksandr Gavenko <> writes:

Hi Oleksandr,

>> Please have a look at
>>    (info "(emacs) Choosing Modes")
>    Third, Emacs tries to determine the major mode by looking at the
> text at the start of the buffer, based on the variable
> `magic-mode-alist'.  By default, this variable is `nil' (an empty
> list), so Emacs skips this step; however, you can customize it in your
> init file
> How long start of the buffer? Which variable control this behavior?

I don't know exactly, but in general only the first line is relevant,
with some shebang like


But read a bit on:

,----[ (info "(emacs)Choosing Modes") ]
|    Alternatively, an element of `magic-mode-alist' may have the form
| where MATCH-FUNCTION is a Lisp function that is called at the beginning
| of the buffer; if the function returns non-`nil', Emacs set the major
| mode wit MODE-FUNCTION.

This should do the trick:

--8<---------------cut here---------------start------------->8---
(defun c++-header-file-p ()
  "Return non-nil, if in a C++ header."
  (and (string-match "\\.h$"
                     (or (buffer-file-name)
         (re-search-forward "\\_<class\\_>" nil t))))

(add-to-list 'magic-mode-alist
             '(c++-header-file-p . c++-mode))
--8<---------------cut here---------------end--------------->8---


reply via email to

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