The problem is that .h is an extension used for multiple filetypes in the real world and I have my personal feelings about this [expletive deleted] insanity, thats what .hpp is for, but anyway the world is what it is and .h is used for C, C++ and others.

Because C++ is a superset of C, and C++ has rather more in the "header" files than C does usually, C++ headers need to be C++, they rarely highlight or parse well if treated as C. But C ones will still pretty much parse and highlight correctly if treated as C++. So it was decided that making the setting for .h C++ will be mostly ok for C contents too. So the default setting in filetype_extensions.conf put *.h on C++. And because C++ is before any other filetype that also uses *.h the C++ setting overrides those settings which are after it.

And since Geany has a mix of C and C++ with both using .h for header, then of course the default settings must suit Geany 😜.

Your options for using .h are:

  1. if you only use C but no C++ then in filetype_extensions.conf add .h to C
  2. add your snipets to both C and C++
  3. add // -*- C -*- to your C headers so they are explicit independent of the extension


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <geany/geany/issues/3992/2408548537@github.com>