Closes: #3305
* Common Intermediate Language: https://en.wikipedia.org/wiki/Common_Intermediate_Language * Upstream discussion: https://sourceforge.net/p/scintilla/feature-requests/1265/
This PR adds a new Lexer (`CIL`) from upstream v5.1.4 and adds a new filetype in Geany. Thanks to @xv for his great work with the Lexer module! 🥳
I've tried to follow the instructions from `HACKING` file, thanks to @elextr for pointing me in the right direction. Sadly I've no experience with Geany and Lexilla in terms of coding internals. If something looks wrong, I'll try to fix the PR. You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3480
-- Commit Summary --
* Add CIL filetype
-- File Changes --
M data/Makefile.am (1) A data/filedefs/filetypes.cil (30) M data/filetype_extensions.conf (1) M scintilla/Makefile.am (1) A scintilla/lexilla/lexers/LexCIL.cxx (410) M scintilla/lexilla/src/Lexilla.cxx (1) M src/filetypes.c (5) M src/filetypes.h (1) M src/highlighting.c (12) M src/highlightingmappings.h (25)
-- Patch Links --
https://github.com/geany/geany/pull/3480.patch https://github.com/geany/geany/pull/3480.diff
@elextr commented on this pull request.
@@ -178,6 +178,7 @@ static void AddGeanyLexers()
&lmBash, &lmBatch, &lmCaml, + &lmCIL,
`AddGeanyLexers()` is not part of Lexilla, it is added when Lexilla is updated by `scintilla_changes.patch` so you need to add there as well, or you lexer will be unknown and the crash will return on the next Lexilla update.
@killerbees19 pushed 1 commit.
1397da184180e39a2797ffeb9f15c5174f1f52c5 Add CIL lexer at cintilla_changes.patch
@killerbees19 commented on this pull request.
@@ -178,6 +178,7 @@ static void AddGeanyLexers()
&lmBash, &lmBatch, &lmCaml, + &lmCIL,
Thanks!
Fixed: 1397da184180e39a2797ffeb9f15c5174f1f52c5
@killerbees19 pushed 1 commit.
07268b108d29236d76a38761a485e021ac95e719 Add CIL lexer at meson.build
@killerbees19 pushed 1 commit.
798592ae2f6172545b7e4624927393ec5944659d Update filetypes.cil
@techee requested changes on this pull request.
@killerbees19 Thanks for all your work and your patience! I'll try to assist you to get this merged to Geany finally.
A few more general comments apart from those commenting specific code: 1. It would be good to rebase this pull request on top of current master. 2. If there's an updated CIL lexer in Lexilla, please use it (but from what I have seen the latest update was 2 years ago) 3. This pull request is missing the meson build system support - in the meantime we updated HACKING so you should see which of the meson files you should modify. 4. Since the language uses braces, I'd suggest adding it to `lexer_has_braces()` in `editor.c` - see HACKING.
Apart from these suggestions the pull request looks good to me in general so once they are resolved, I think we could merge it.
@@ -0,0 +1,36 @@
+# For complete documentation of this file, please see Geany's main documentation +[styling] +# Edit these in the colorscheme .conf file instead +default=default +comment=comment +commentline=comment_line +stringliteral=string
I'd suggest renaming `stringliteral` to `string` here.
+stringliteral=string
+keyword=type +keyword2=keyword_2 +keyword3=keyword_1 +label=preprocessor +operator=operator +stringeol=string_eol +identifier=identifier_1 + +[keywords] +# Credits: Jad Altahan (github.com/xv) - https://sourceforge.net/p/scintilla/feature-requests/1265/#fa85/e6e8/8255/9e... +keywords=bool char float32 float64 int int8 int16 int32 int64 native nullref object string typedref uint8 uint32 unsigned abstract ansi assembly auto autochar beforefieldinit catch cdecl cil class compilercontrolled explicit extends extern famandassem family famorassem fastcall final finally forwardref hidebysig implements initonly instance interface internalcall lasterr literal managed nested newslot noinlining nomangle nooptimization notserialized optil pinvokeimpl platformapi preservesig private privatescope public reqsecobj rtspecialname runtime sealed sequential serializable specialname static stdcall strict synchronized thiscall unicode unmanaged unmanagedexp valuetype vararg virtual void winapi +metadata=.addon .assembly .cctor .class .corflags .ctor .custom .data .emitbyte .entrypoint .event .export .field .file .fire .get .hash .imagebase .import .language .line .locale .localized .locals .manifestres .maxstack .method .module .mresource .namespace .other .override .pack .param .pdirect .permission .permissionset .property .property .publickey .publickeytoken .removeon .set .size .stackreserve .subsystem .try .ver .vtable .vtentry .vtfixup .zeroinit +opcode=add add.ovf add.ovf.un and arglist beq beq.s bge bge.s bge.un bge.un.s bgt bgt.s bgt.un bgt.un.s ble ble.s ble.un ble.un.s blt blt.s blt.un blt.un.s bne.un bne.un.s box br br.s break brfalse brfalse.s brinst brinst.s brnull brnull.s brtrue brtrue.s brzero brzero.s bstr call calli callmostderived callvirt castclass ceq cgt cgt.un ckfinite ckfinite clt clt.un constrained. conv.i conv.i1 conv.i2 conv.i4 conv.i8 conv.ovf.i conv.ovf.i.un conv.ovf.i1 conv.ovf.i1.un conv.ovf.i2 conv.ovf.i2.un conv.ovf.i4 conv.ovf.i4.un conv.ovf.i8 conv.ovf.i8.un conv.ovf.u conv.ovf.u.un conv.ovf.u1 conv.ovf.u1.un conv.ovf.u2 conv.ovf.u2.un conv.ovf.u4 conv.ovf.u4.un conv.ovf.u8 conv.ovf.u8.un conv.r.un conv.r4 conv.r8 conv.u conv.u1 conv.u2 conv.u4 conv.u8 cpblk cpobj div div.un dup endfault endfilter endfinally initblk initobj isinst jmp ldarg ldarg.0 ldarg.1 ldarg.2 ldarg.3 ldarg.s ldarga ldarga.s ldc.i4 ldc.i4.0 ldc.i4.1 ldc.i4.2 ldc.i4.3 ldc.i4.4 ldc.i4.5 ldc.i4.6 ldc.i4.7 ldc.i4.8 ldc.i4.m1 ldc.i4.s ldc.i8 ldc.r4 ldc.r8 ldelem ldelem.i ldelem.i1 ldelem.i2 ldelem.i4 ldelem.i8 ldelem.r4 ldelem.r8 ldelem.ref ldelem.u1 ldelem.u2 ldelem.u4 ldelema ldfld ldflda ldftn ldind.i ldind.i1 ldind.i2 ldind.i4 ldind.i8 ldind.r4 ldind.r8 ldind.ref ldind.u1 ldind.u2 ldind.u4 ldlen ldloc ldloc.0 ldloc.1 ldloc.2 ldloc.3 ldloc.s ldloca ldloca.s ldnull ldobj ldsfld ldsflda ldstr ldtoken ldvirtftn leave leave.s localloc mkrefany mul mul.ovf mul.ovf.un neg newarr newobj no. nop not or pop readonly. refanytype refanyval rem rem.un ret rethrow shl shr shr.un sizeof starg starg.s stelem stelem.i stelem.i1 stelem.i2 stelem.i4 stelem.i8 stelem.r4 stelem.r8 stelem.ref stfld stind.i stind.i1 stind.i2 stind.i4 stind.i8 stind.r4 stind.r8 stind.ref stloc stloc.0 stloc.1 stloc.2 stloc.3 stloc.s stobj stsfld sub sub.ovf sub.ovf.un switch tail. throw unaligned. unbox unbox.any volatile. xor + +[settings]
Please have a look at some other filetype file (e.g. `filetypes.c`) and add all the settings and comments (that aren't too specific to the given language) in this file. This will make all filetype config files look similar and have some config options that are easy to modify by users.
For `mime_type` use `text/x-cil` - I haven't found the correct MIME type for CIL but this could be OK.
+[settings] +lexer_filetype=CIL + +# default extension used when saving files +extension=il + +[indentation] +#width=4 +# 0 is spaces, 1 is tabs, 2 is tab & spaces +#type=1 + +[build_settings] +## %f will be replaced by the complete filename +## %e will be replaced by the filename without extension +#compiler=ilasm /OUTPUT="%e" "%f"
Is this some standard tool or are there many alternatives? The most commonly used one could be left uncommented and you could also specify some other commands - see `filetypes.c`.
@@ -15,6 +15,7 @@ BibTeX=*.bib;
CAML=*.ml;*.mli; C=*.c;*.xpm; C++=*.cpp;*.cxx;*.c++;*.cc;*.h;*.hpp;*.hxx;*.h++;*.hh;*.C;*.H; +CIL=*.il
Just curious - I don't have any experience with CIL but I used "smali" (decompiled Android bytecode) and it looks very similar to CIL, maybe it's just another dialect of it. So I think also `*.smali` could be added here.
@@ -62,7 +62,7 @@ diff --git scintilla/lexilla/src/Lexilla.cxx scintilla/lexilla/src/Lexilla.cxx
index cd4b23617..af4a73db4 100644 --- scintilla/lexilla/src/Lexilla.cxx +++ scintilla/lexilla/src/Lexilla.cxx -@@ -165,12 +165,69 @@ namespace { +@@ -165,12 +165,71 @@ namespace {
Drop this diff - the patch should succeed without it.
@@ -475,7 +476,7 @@ static guint match_basename(const GeanyFiletype *ft, const gchar *base_filename)
for (guint j = 0; ft->pattern[j] != NULL; j++) { gchar *pat = ft->pattern[j]; - +
Drop the whitespace diff.
@@ -536,7 +537,7 @@ GeanyFiletype *filetypes_detect_from_extension(const gchar *utf8_filename)
for (guint i = 0; i < filetypes_array->len; i++) { guint mlen = match_basename(filetypes[i], base_filename); - +
Drop the whitespace diff.
@@ -1567,6 +1569,9 @@ gboolean highlighting_is_string_style(gint lexer, gint style)
style == SCE_H_SGML_SIMPLESTRING || style == SCE_H_SINGLESTRING);
+ case SCLEX_CIL: + return (style == SCE_CIL_STRING);
I'd also suggest adding SCE_CIL_STRINGEOL here.
@@ -1869,7 +1879,7 @@ gboolean highlighting_is_comment_style(gint lexer, gint style)
case SCLEX_MARKDOWN: /* there is no comment type in those lexers, listing here just for completeness */ return FALSE; - +
Drop the whitespace diff.
@@ -336,6 +336,31 @@ static const HLKeyword highlighting_keywords_CAML[] =
#define highlighting_properties_CAML EMPTY_PROPERTIES
+/* CIL */ +#define highlighting_lexer_CIL SCLEX_CIL +static const HLStyle highlighting_styles_CIL[] = +{ + { SCE_CIL_DEFAULT, "default", FALSE }, + { SCE_CIL_COMMENT, "comment", FALSE }, + { SCE_CIL_COMMENTLINE, "commentline", FALSE }, + { SCE_CIL_WORD, "keyword", FALSE }, + { SCE_CIL_WORD2, "keyword2", FALSE }, + { SCE_CIL_WORD3, "keyword3", FALSE }, + { SCE_CIL_STRING, "stringliteral", FALSE },
I'd suggest renaming this to plain "string" and updating `filetypes.cil` accordingly.
Thanks for reviewing my PR, I'll look into all comments in the next few weeks. Currently I'm too busy for this PR :-)
_Just for the record: I'm using this PR since May with patched v1.36 and v1.38 packages at Debian/Ubuntu without any problems. Editing CIL files is much easier than before and I've created thousands of new lines with this syntax highlighter. Anyways, your recommended corrections are highly appreciated and I'll try to fix all issues!_
@killerbees19 pushed 1 commit.
fa612ce0f6366eb3ad89bff651b1db7056ecff31 s/stringliteral/string/
@killerbees19 commented on this pull request.
@@ -15,6 +15,7 @@ BibTeX=*.bib;
CAML=*.ml;*.mli; C=*.c;*.xpm; C++=*.cpp;*.cxx;*.c++;*.cc;*.h;*.hpp;*.hxx;*.h++;*.hh;*.C;*.H; +CIL=*.il
Are you sure this is a good idea? It looks similar, but there seem to be significant differences. I don't think SMALI files would benefit from this. Not even the comments are identical.
GitHub syntax highlighter for SMALI:
![github-smali](https://github.com/user-attachments/assets/36771a92-ea92-47e0-81d2-4aa47ead9...)
Geany with CIL syntax highlighter:
![smali-with-cil-highlighter](https://github.com/user-attachments/assets/fb1237be-71d7-49da-b39b-86bf4d4f9...)
@killerbees19 pushed 1 commit.
f1332c1914dd8ae3ab3006870f624b506778495e ...
@killerbees19 pushed 1 commit.
67b675a0868fa3277b8a09eec632053ed85f78d2 s/stringliteral/string/
@killerbees19 pushed 1 commit.
d144fc8db6e72c74066ba4274d924e6624774c7b ...
@killerbees19 pushed 1 commit.
ff487cf8d93b7a43b930ecca8f39c92281d22939 ...
@killerbees19 commented on this pull request.
+[settings] +lexer_filetype=CIL + +# default extension used when saving files +extension=il + +[indentation] +#width=4 +# 0 is spaces, 1 is tabs, 2 is tab & spaces +#type=1 + +[build_settings] +## %f will be replaced by the complete filename +## %e will be replaced by the filename without extension +#compiler=ilasm /OUTPUT="%e" "%f"
I would assume that it's a standard tool. I don't know if there are (m)any alternatives. In any case, it's mentioned in the official documentation: https://learn.microsoft.com/en-us/dotnet/framework/tools/ilasm-exe-il-assemb...
@killerbees19 pushed 1 commit.
8ac5ea78bf68ff9c8f8c9360d195682c107cb715 Add CIL filetype
@killerbees19 pushed 1 commit.
6dfde07395b672b700053e0c30712a0f5bfa5fac Add CIL filetype
@killerbees19 pushed 1 commit.
be97bde9daf26914b44b970df9579f1e7cdef598 ...
@killerbees19 pushed 1 commit.
6fcd82fae214df92f30d17718173af45742a4cc9 Add CIL lexer/filetype
(Work in progress, just a short _"PR is still alive"_ comment from my side. Hopefully I'll finish and test this PR in august.)
It would be good to rebase this pull request on top of current master.
Done.
If there's an updated CIL lexer in Lexilla, please use it (but from what I have seen the latest update was 2 years ago)
No update available.
This pull request is missing the meson build system support - in the meantime we updated HACKING so you should see which of the meson files you should modify.
`LexCIL.cxx` is already defined in this file?
Since the language uses braces, I'd suggest adding it to lexer_has_braces() in editor.c - see HACKING.
Done.
@killerbees19 commented on this pull request.
+stringliteral=string
+keyword=type +keyword2=keyword_2 +keyword3=keyword_1 +label=preprocessor +operator=operator +stringeol=string_eol +identifier=identifier_1 + +[keywords] +# Credits: Jad Altahan (github.com/xv) - https://sourceforge.net/p/scintilla/feature-requests/1265/#fa85/e6e8/8255/9e... +keywords=bool char float32 float64 int int8 int16 int32 int64 native nullref object string typedref uint8 uint32 unsigned abstract ansi assembly auto autochar beforefieldinit catch cdecl cil class compilercontrolled explicit extends extern famandassem family famorassem fastcall final finally forwardref hidebysig implements initonly instance interface internalcall lasterr literal managed nested newslot noinlining nomangle nooptimization notserialized optil pinvokeimpl platformapi preservesig private privatescope public reqsecobj rtspecialname runtime sealed sequential serializable specialname static stdcall strict synchronized thiscall unicode unmanaged unmanagedexp valuetype vararg virtual void winapi +metadata=.addon .assembly .cctor .class .corflags .ctor .custom .data .emitbyte .entrypoint .event .export .field .file .fire .get .hash .imagebase .import .language .line .locale .localized .locals .manifestres .maxstack .method .module .mresource .namespace .other .override .pack .param .pdirect .permission .permissionset .property .property .publickey .publickeytoken .removeon .set .size .stackreserve .subsystem .try .ver .vtable .vtentry .vtfixup .zeroinit +opcode=add add.ovf add.ovf.un and arglist beq beq.s bge bge.s bge.un bge.un.s bgt bgt.s bgt.un bgt.un.s ble ble.s ble.un ble.un.s blt blt.s blt.un blt.un.s bne.un bne.un.s box br br.s break brfalse brfalse.s brinst brinst.s brnull brnull.s brtrue brtrue.s brzero brzero.s bstr call calli callmostderived callvirt castclass ceq cgt cgt.un ckfinite ckfinite clt clt.un constrained. conv.i conv.i1 conv.i2 conv.i4 conv.i8 conv.ovf.i conv.ovf.i.un conv.ovf.i1 conv.ovf.i1.un conv.ovf.i2 conv.ovf.i2.un conv.ovf.i4 conv.ovf.i4.un conv.ovf.i8 conv.ovf.i8.un conv.ovf.u conv.ovf.u.un conv.ovf.u1 conv.ovf.u1.un conv.ovf.u2 conv.ovf.u2.un conv.ovf.u4 conv.ovf.u4.un conv.ovf.u8 conv.ovf.u8.un conv.r.un conv.r4 conv.r8 conv.u conv.u1 conv.u2 conv.u4 conv.u8 cpblk cpobj div div.un dup endfault endfilter endfinally initblk initobj isinst jmp ldarg ldarg.0 ldarg.1 ldarg.2 ldarg.3 ldarg.s ldarga ldarga.s ldc.i4 ldc.i4.0 ldc.i4.1 ldc.i4.2 ldc.i4.3 ldc.i4.4 ldc.i4.5 ldc.i4.6 ldc.i4.7 ldc.i4.8 ldc.i4.m1 ldc.i4.s ldc.i8 ldc.r4 ldc.r8 ldelem ldelem.i ldelem.i1 ldelem.i2 ldelem.i4 ldelem.i8 ldelem.r4 ldelem.r8 ldelem.ref ldelem.u1 ldelem.u2 ldelem.u4 ldelema ldfld ldflda ldftn ldind.i ldind.i1 ldind.i2 ldind.i4 ldind.i8 ldind.r4 ldind.r8 ldind.ref ldind.u1 ldind.u2 ldind.u4 ldlen ldloc ldloc.0 ldloc.1 ldloc.2 ldloc.3 ldloc.s ldloca ldloca.s ldnull ldobj ldsfld ldsflda ldstr ldtoken ldvirtftn leave leave.s localloc mkrefany mul mul.ovf mul.ovf.un neg newarr newobj no. nop not or pop readonly. refanytype refanyval rem rem.un ret rethrow shl shr shr.un sizeof starg starg.s stelem stelem.i stelem.i1 stelem.i2 stelem.i4 stelem.i8 stelem.r4 stelem.r8 stelem.ref stfld stind.i stind.i1 stind.i2 stind.i4 stind.i8 stind.r4 stind.r8 stind.ref stloc stloc.0 stloc.1 stloc.2 stloc.3 stloc.s stobj stsfld sub sub.ovf sub.ovf.un switch tail. throw unaligned. unbox unbox.any volatile. xor + +[settings]
I don't know what to do at this point. What exactly should I do, I don't understand it right now. Please give me another hint for the right direction. Thank you!
(I have added the MIME type in the meantime.)
@techee commented on this pull request.
+stringliteral=string
+keyword=type +keyword2=keyword_2 +keyword3=keyword_1 +label=preprocessor +operator=operator +stringeol=string_eol +identifier=identifier_1 + +[keywords] +# Credits: Jad Altahan (github.com/xv) - https://sourceforge.net/p/scintilla/feature-requests/1265/#fa85/e6e8/8255/9e... +keywords=bool char float32 float64 int int8 int16 int32 int64 native nullref object string typedref uint8 uint32 unsigned abstract ansi assembly auto autochar beforefieldinit catch cdecl cil class compilercontrolled explicit extends extern famandassem family famorassem fastcall final finally forwardref hidebysig implements initonly instance interface internalcall lasterr literal managed nested newslot noinlining nomangle nooptimization notserialized optil pinvokeimpl platformapi preservesig private privatescope public reqsecobj rtspecialname runtime sealed sequential serializable specialname static stdcall strict synchronized thiscall unicode unmanaged unmanagedexp valuetype vararg virtual void winapi +metadata=.addon .assembly .cctor .class .corflags .ctor .custom .data .emitbyte .entrypoint .event .export .field .file .fire .get .hash .imagebase .import .language .line .locale .localized .locals .manifestres .maxstack .method .module .mresource .namespace .other .override .pack .param .pdirect .permission .permissionset .property .property .publickey .publickeytoken .removeon .set .size .stackreserve .subsystem .try .ver .vtable .vtentry .vtfixup .zeroinit +opcode=add add.ovf add.ovf.un and arglist beq beq.s bge bge.s bge.un bge.un.s bgt bgt.s bgt.un bgt.un.s ble ble.s ble.un ble.un.s blt blt.s blt.un blt.un.s bne.un bne.un.s box br br.s break brfalse brfalse.s brinst brinst.s brnull brnull.s brtrue brtrue.s brzero brzero.s bstr call calli callmostderived callvirt castclass ceq cgt cgt.un ckfinite ckfinite clt clt.un constrained. conv.i conv.i1 conv.i2 conv.i4 conv.i8 conv.ovf.i conv.ovf.i.un conv.ovf.i1 conv.ovf.i1.un conv.ovf.i2 conv.ovf.i2.un conv.ovf.i4 conv.ovf.i4.un conv.ovf.i8 conv.ovf.i8.un conv.ovf.u conv.ovf.u.un conv.ovf.u1 conv.ovf.u1.un conv.ovf.u2 conv.ovf.u2.un conv.ovf.u4 conv.ovf.u4.un conv.ovf.u8 conv.ovf.u8.un conv.r.un conv.r4 conv.r8 conv.u conv.u1 conv.u2 conv.u4 conv.u8 cpblk cpobj div div.un dup endfault endfilter endfinally initblk initobj isinst jmp ldarg ldarg.0 ldarg.1 ldarg.2 ldarg.3 ldarg.s ldarga ldarga.s ldc.i4 ldc.i4.0 ldc.i4.1 ldc.i4.2 ldc.i4.3 ldc.i4.4 ldc.i4.5 ldc.i4.6 ldc.i4.7 ldc.i4.8 ldc.i4.m1 ldc.i4.s ldc.i8 ldc.r4 ldc.r8 ldelem ldelem.i ldelem.i1 ldelem.i2 ldelem.i4 ldelem.i8 ldelem.r4 ldelem.r8 ldelem.ref ldelem.u1 ldelem.u2 ldelem.u4 ldelema ldfld ldflda ldftn ldind.i ldind.i1 ldind.i2 ldind.i4 ldind.i8 ldind.r4 ldind.r8 ldind.ref ldind.u1 ldind.u2 ldind.u4 ldlen ldloc ldloc.0 ldloc.1 ldloc.2 ldloc.3 ldloc.s ldloca ldloca.s ldnull ldobj ldsfld ldsflda ldstr ldtoken ldvirtftn leave leave.s localloc mkrefany mul mul.ovf mul.ovf.un neg newarr newobj no. nop not or pop readonly. refanytype refanyval rem rem.un ret rethrow shl shr shr.un sizeof starg starg.s stelem stelem.i stelem.i1 stelem.i2 stelem.i4 stelem.i8 stelem.r4 stelem.r8 stelem.ref stfld stind.i stind.i1 stind.i2 stind.i4 stind.i8 stind.r4 stind.r8 stind.ref stloc stloc.0 stloc.1 stloc.2 stloc.3 stloc.s stobj stsfld sub sub.ovf sub.ovf.un switch tail. throw unaligned. unbox unbox.any volatile. xor + +[settings]
I don't know what to do at this point. What exactly should I do, I don't understand it right now. Please give me another hint for the right direction.
When looking at some other file types like
https://github.com/geany/geany/blob/master/data/filedefs/filetypes.sh
something like this is still missing:
```ini # these characters define word boundaries when making selections and searching # using word matching options #wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
# single comments, like # in this file comment_single=# # multiline comments #comment_open= #comment_close=
# set to false if a comment character/string should start at column 0 of a line, true uses any # indentation of the line, e.g. setting to true causes the following on pressing CTRL+d # #command_example(); # setting to false would generate this # # command_example(); # This setting works only for single line comments comment_use_indent=true
# context action command (please see Geany's main documentation for details) context_action_cmd= ```
(modify it where needed)
@techee commented on this pull request.
@@ -15,6 +15,7 @@ BibTeX=*.bib;
CAML=*.ml;*.mli; C=*.c;*.xpm; C++=*.cpp;*.cxx;*.c++;*.cc;*.h;*.hpp;*.hxx;*.h++;*.hh;*.C;*.H; +CIL=*.il
OK, if there are bigger differences between the languages, it's really better to use CIL just for `*.il` files.
This pull request is missing the meson build system support - in the meantime we updated HACKING so you should see which of the meson files you should modify.
LexCIL.cxx is already defined in this file?
I'm not sure if I understand what you mean but you have to add the lexer into
https://github.com/geany/geany/blob/71969f600023a333bcd3b717a434082a7039f316...
I'm not sure if I understand what you mean but you have to add the lexer into
https://github.com/geany/geany/blob/71969f600023a333bcd3b717a434082a7039f316...
This is already included in this PR since last year. ^^
https://github.com/geany/geany/pull/3480/files#diff-30d8f6be6320feeacf686be9...
@killerbees19 pushed 1 commit.
3442f6f0a5d562f2a5228ac6603aa8084764136b Add CIL lexer/filetype
@killerbees19 pushed 1 commit.
27f691cbca5869ac867d80113074facd3ee3b476 Add CIL lexer/filetype
@techee commented on this pull request.
so i think this feature is complete, if we are considering merging it -
Agree, I think it's mostly ready.
I just had a look at the code once more and found some minor issues but nothing big.
we should settle on config UI (either keep as is or change to point https://github.com/geany/geany/pull/1 from https://github.com/geany/geany/pull/3911#pullrequestreview-2136554129)
And probably rename everything to "persistent notepad" or something like that.
I've been thinking about it and maybe "persistent untitled documents" would be best so there's no new terminology. I still think it would be best to merge the configuration with "instant save" but depends on what others (@b4n @eht16) think.
Note that we seem to be in the middle of the "Geany summer vacation" period and even normally it takes quite some time to get things merged (so please be patient) but from me at least this PR has full support - it's very useful and it also fixes the issue with the most thumbs up reactions.
@techee I think your comment should go to PR #3911? 😄
Because it's all Greek to me. 🙂
I've been thinking about it and maybe "persistent untitled documents" ...
@techee I think your comment should go to PR https://github.com/geany/geany/pull/3911? 😄
Because it's all Greek to me. 🙂
Good analysis :-).
This is already included in this PR since last year. ^^
Right, I missed that.
Alright, the PR looks good to me - anything missing from your point of view?
@techee approved this pull request.
@killerbees19 pushed 1 commit.
c942622e453362f1f93a9d73e143815c5ae26db8 Add CIL lexer/filetype
Okay, [final change](https://github.com/geany/geany/compare/27f691cbca5869ac867d80113074facd3ee3b...): `[build_settings]` commented out, because they are not 100% platform-independent. But I think they are still useful as hint for custom configs.
Successfully built Geany (c942622e453362f1f93a9d73e143815c5ae26db8) and tested it with some CIL files at Debian 12. Looks good to me…
Looks good to me as well - I'll wait for about one week and if nobody has any objections, I'll merge this PR.
Merged #3480 into master.
Merged.
@killerbees19 Thanks for your contribution!
github-comments@lists.geany.org