Hello to all! I really enjoy using Geany as an IDE for embedded programming. I often use Forth language but syntax highlighting for Forth in Geany recognizes only one "primary" keyword set. So, this is a patch for adding "keyword","defword","preword1","preword2","string" keyword sets (as in Scintilla source)
diff --git a/data/filetypes.forth b/data/filetypes.forth index 4654576..240992a 100644 --- a/data/filetypes.forth +++ b/data/filetypes.forth @@ -16,8 +16,12 @@ locale=other
[keywords] # all items must be in one line -primary=ABORT EXIT DO LOOP UNLOOP BEGIN UNTIL WHILE REPEAT EXIT IF ELSE THEN CASE ENDCASE OF ENDOF - +primary=abort exit do loop unloop begin until while repeat exit if else then case endcase of endof again leave +keyword=require included decimal hex also only previous +defword=create does> variable value 2variable constant , 2, c, +string=." " s" c" abort" +preword1=dup drop swap over pick roll 2dup 2drop 2swas 2over +preword2=! c! @ c@ 2! 2@ and or xor invert negate / /mod mod rshift lshift
[settings] # default extension used when saving files diff --git a/src/highlightingmappings.h b/src/highlightingmappings.h index 7092900..f848029 100644 --- a/src/highlightingmappings.h +++ b/src/highlightingmappings.h @@ -544,10 +544,17 @@ static const HLStyle highlighting_styles_FORTH[] = { SCE_FORTH_STRING, "string", FALSE }, { SCE_FORTH_LOCALE, "locale", FALSE } }; + static const HLKeyword highlighting_keywords_FORTH[] = { - { 0, "primary", FALSE } + { 0, "primary", FALSE }, + { 1, "keyword", FALSE }, + { 2, "defword", FALSE }, + { 3, "preword1", FALSE }, + { 4, "preword2", FALSE }, + { 5, "string", FALSE } }; + #define highlighting_properties_FORTH EMPTY_PROPERTIES