HexPat...Is this fancy XML?
-
So I was doing a copying some code made available on GitHub. There are several python pieces, and a bat file to be made.
The last one has a file extension of “hexpat”.
I looked in the H selection and not there.
This is a mash-up of a sort, I do believe?
Didn’t know if it is on the list to be added or not.
Curiosity is all, really.
Notepad++ has made my life easy in many more ways than I thought possible. Thanks for the incredible work.Edit:
Figures I would run into it as soon as I posted something.
https://hackage.haskell.org/package/hexpat-0.12–
moderator edit: linkified the URL for easy referencing -
HexPat…Is this fancy XML?
The last one has a file extension of “hexpat”.Never heard of a standard filetype that uses that extension.
A quick internet search tells me that maybe it’s a file that goes with the ImHex application, and here is an example – it doesn’t look at all like XML to me, so if that’s the format, the answer to your title is “no, it is not fancy XML”. It looks a lot more like a C source-code file (and, from my research, appears to be a config-style file for the ImHex open-source hex-editor app, which it uses to help it interpret specific binary formats).
But I cannot know if that filetype is the same as the
.hexpat
file you found, because you were rather nebulous (other than you thought it looked like fancy XML, which makes me doubt it, because to my mind, the example I found and what you described are two very different formats)If I were looking at that kind of
.hexpat
file, I would choose the C lexer: Settings > Style Configurator > Language:C
, addhexpat
to the User ext.: box, then every time you load a*.hexpat
file, it would choose the C lexer for syntax highlighting.If it really looks more like
<tagName attrib="value"><nested id="12345">text</nested><single setting="false" /></tagName>
, then I would add that value in the User ext.: box for XML instead of C.That link is about a library for the Haskell programming language which is used to parse XML. It is not a description of a file format or of a unique programming language, so it might have nothing to do with the
.hexpat
file you found – or maybe that library uses a.hexpat
as an intermediate filetype (but the page you linked doesn’t say it does, and nothing I see there leads me to believe that the library and the extension are in any way linked; given that the other code in this repo you found are python files, I’d be surprised if there was also a file related to a haskell library).Can you share a link to the
.hexpat
file itself?Didn’t know if it is on the list to be added or not.
Notepad++ does not have a “list of languages to be added”. Notepad++ uses the library called “Lexilla” to handle that part of the codebase, so if the Lexilla project were updated to handle the
.hexpat
text-based file format specifically, then Notepad++ would have access to it … and once it was part of Lexilla, then someone could request that the Notepad++ developers add in the support for it. (Not that it’s relevant at this point in time, but a post in the Community of Notepad++ users is not the right place for feature requests, as our FAQ explains. But you are nowhere near the level of being ready to even officially make a feature request, so don’t worry about it for now.)Unless the
.hexpat
file extension were a lot more common than it appears to be (based on the lack of solid information about it, and possible collisions in the “hexpat” namespace across the internet), it is doubtful that it’s “important” enough to get added to Lexilla and thus would not propagate to Notepad++ either.For languages not found in Notepad++'s built-in language list, users are expected to:
- find a language that’s close enough: for example, parsing a header-looking file format like I linked with the C lexer, or an XML-based fileformat with the XML lexer, using the User ext box to associate that extension with a specific language, as I described above
- use the User Defined Language feature to add simple keyword-based syntax highlighting
- write (or commission someone to write) a lexer plugin