Perhaps someone should create a script that will read each theme file & create an AutoHotkey entry based on the color schemes of the other languages.
I used the color scheme from Ruby since it had the most options
( except for ESCAPE SECUENCE, ERROR, & USER DEFINED, which I left as red ). If you run this script from the NP++ themes folder, it will create a subfolder with all the theme files with an AHK entry:
[color=DarkRed]#NoEnv[/color]
[color=DarkRed]SetBatchLines[/color], -1
[color=DarkRed]FileCreateDir[/color], Themes - AHK
[color=DarkRed]Loop[/color], *.xml {
[color=DarkRed]FileRead[/color], FullXML, % file := [color=RedOrange]A_LoopFileName[/color]
[color=DarkRed]if[/color] [color=DarkRed]RegExMatch[/color]( FullXML, [color=CornFlowerBlue]"si)name="[/color][color=CornFlowerBlue]"ruby"[/color][color=CornFlowerBlue]".*?LexerType"[/color], RUBY ) ; if there is a Ruby Entry
[color=DarkRed]GoSub[/color], CreateEntry
[color=DarkRed]else[/color],
NoEntry .= [color=RedOrange]A_LoopFileName[/color] [color=CornFlowerBlue]"`n"[/color]
}
[color=DarkRed]if[/color] ( NoEntry )
[color=DarkRed]MsgBox[/color], 262208, Could Not Create:, % [color=DarkRed]SubStr[/color]( NoEntry, 1, -1 )
[color=DarkRed]Return[/color]
CreateEntry:
{
[color=DarkRed]RegExMatch[/color]( RUBY, [color=CornFlowerBlue]"si)name="[/color][color=CornFlowerBlue]"DEFAULT"[/color][color=CornFlowerBlue]".*?bgColor="[/color][color=CornFlowerBlue]"\K.{6}"[/color], BGCOLOR )
, [color=DarkRed]RegExMatch[/color]( RUBY, [color=CornFlowerBlue]"si)name="[/color][color=CornFlowerBlue]"IDENTIFIER"[/color][color=CornFlowerBlue]".*?fgColor="[/color][color=CornFlowerBlue]"\K.{6}"[/color], IDENTIFIER )
, [color=DarkRed]RegExMatch[/color]( RUBY, [color=CornFlowerBlue]"si)name="[/color][color=CornFlowerBlue]"COMMENTLINE"[/color][color=CornFlowerBlue]".*?fgColor="[/color][color=CornFlowerBlue]"\K.{6}"[/color], COMMENT )
, [color=DarkRed]RegExMatch[/color]( RUBY, [color=CornFlowerBlue]"si)name="[/color][color=CornFlowerBlue]"INSTRUCTION.*?fgColor="[/color][color=CornFlowerBlue]"\K.{6}"[/color], INSTRUCTION )
, [color=DarkRed]RegExMatch[/color]( RUBY, [color=CornFlowerBlue]"si)name="[/color][color=CornFlowerBlue]"STRING"[/color][color=CornFlowerBlue]".*?fgColor="[/color][color=CornFlowerBlue]"\K.{6}"[/color], STRING )
, [color=DarkRed]RegExMatch[/color]( RUBY, [color=CornFlowerBlue]"si)name="[/color][color=CornFlowerBlue]"NUMBER"[/color][color=CornFlowerBlue]".*?fgColor="[/color][color=CornFlowerBlue]"\K.{6}"[/color], NUMBER )
, [color=DarkRed]RegExMatch[/color]( RUBY, [color=CornFlowerBlue]"si)name="[/color][color=CornFlowerBlue]"CLASS NAME"[/color][color=CornFlowerBlue]".*?fgColor="[/color][color=CornFlowerBlue]"\K.{6}"[/color], CLASS_NAME )
, [color=DarkRed]RegExMatch[/color]( RUBY, [color=CornFlowerBlue]"si)name="[/color][color=CornFlowerBlue]"DEF NAME"[/color][color=CornFlowerBlue]".*?fgColor="[/color][color=CornFlowerBlue]"\K.{6}"[/color], REGEX )
, [color=DarkRed]RegExMatch[/color]( RUBY, [color=CornFlowerBlue]"si)name="[/color][color=CornFlowerBlue]"REGEX"[/color][color=CornFlowerBlue]".*?fgColor="[/color][color=CornFlowerBlue]"\K.{6}"[/color], DEF_NAME )
template =
( join`r`n
<LexerType name=[color=CornFlowerBlue]"AutoHotkey"[/color] desc=[color=CornFlowerBlue]"AutoHotkey"[/color] ext=[color=CornFlowerBlue]""[/color] excluded=[color=CornFlowerBlue]"no"[/color]>
<WordsStyle name=[color=CornFlowerBlue]"DEFAULT"[/color] styleID=[color=CornFlowerBlue]"0"[/color] fgColor=[color=CornFlowerBlue]"%IDENTIFIER%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"0"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"COMMENTLINE"[/color] styleID=[color=CornFlowerBlue]"1"[/color] fgColor=[color=CornFlowerBlue]"%COMMENT%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"0"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"COMMENTBLOCK"[/color] styleID=[color=CornFlowerBlue]"2"[/color] fgColor=[color=CornFlowerBlue]"%COMMENT%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"1"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"ESCAPE SECUENCE"[/color] styleID=[color=CornFlowerBlue]"3"[/color] fgColor=[color=CornFlowerBlue]"FF0000"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"0"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"SYNOPERATOR"[/color] styleID=[color=CornFlowerBlue]"4"[/color] fgColor=[color=CornFlowerBlue]"%INSTRUCTION%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"1"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"EXPOPERATOR"[/color] styleID=[color=CornFlowerBlue]"5"[/color] fgColor=[color=CornFlowerBlue]"%INSTRUCTION%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"1"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"STRING"[/color] styleID=[color=CornFlowerBlue]"6"[/color] fgColor=[color=CornFlowerBlue]"%STRING%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"2"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"NUMBER"[/color] styleID=[color=CornFlowerBlue]"7"[/color] fgColor=[color=CornFlowerBlue]"%NUMBER%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"1"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"IDENTIFIER"[/color] styleID=[color=CornFlowerBlue]"8"[/color] fgColor=[color=CornFlowerBlue]"%IDENTIFIER%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"0"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"LABEL"[/color] styleID=[color=CornFlowerBlue]"10"[/color] fgColor=[color=CornFlowerBlue]"%CLASS_NAME%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"1"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"VARIABLES"[/color] styleID=[color=CornFlowerBlue]"9"[/color] fgColor=[color=CornFlowerBlue]"%NUMBER%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"0"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"VARREF-KW"[/color] styleID=[color=CornFlowerBlue]"19"[/color] fgColor=[color=CornFlowerBlue]"%NUMBER%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"1"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"ERROR"[/color] styleID=[color=CornFlowerBlue]"20"[/color] fgColor=[color=CornFlowerBlue]"FF0000"[/color] bgColor=[color=CornFlowerBlue]"%IDENTIFIER%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"0"[/color] />
<!--Keywords -->
<WordsStyle name=[color=CornFlowerBlue]"FLOWCONTROL"[/color] styleID=[color=CornFlowerBlue]"11"[/color] fgColor=[color=CornFlowerBlue]"%INSTRUCTION%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"1"[/color] keywordClass=[color=CornFlowerBlue]"0"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"COMMANDS"[/color] styleID=[color=CornFlowerBlue]"12"[/color] fgColor=[color=CornFlowerBlue]"%INSTRUCTION%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"1"[/color] keywordClass=[color=CornFlowerBlue]"1"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"FUNCTIONS"[/color] styleID=[color=CornFlowerBlue]"13"[/color] fgColor=[color=CornFlowerBlue]"%REGEX%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"0"[/color] keywordClass=[color=CornFlowerBlue]"2"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"DIRECTIVES"[/color] styleID=[color=CornFlowerBlue]"14"[/color] fgColor=[color=CornFlowerBlue]"%INSTRUCTION%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"0"[/color] keywordClass=[color=CornFlowerBlue]"3"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"BUTTONS/KEYS"[/color] styleID=[color=CornFlowerBlue]"15"[/color] fgColor=[color=CornFlowerBlue]"%IDENTIFIER%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"3"[/color] keywordClass=[color=CornFlowerBlue]"4"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"BUILT-IN VARIABLES"[/color] styleID=[color=CornFlowerBlue]"16"[/color] fgColor=[color=CornFlowerBlue]"%NUMBER%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"2"[/color] keywordClass=[color=CornFlowerBlue]"5"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"SPECIAL PARAMETERS"[/color] styleID=[color=CornFlowerBlue]"17"[/color] fgColor=[color=CornFlowerBlue]"%DEF_NAME%"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"0"[/color] keywordClass=[color=CornFlowerBlue]"6"[/color] />
<WordsStyle name=[color=CornFlowerBlue]"USER DEFINED"[/color] styleID=[color=CornFlowerBlue]"18"[/color] fgColor=[color=CornFlowerBlue]"FF0000"[/color] bgColor=[color=CornFlowerBlue]"%BGCOLOR%"[/color] fontName=[color=CornFlowerBlue]""[/color] fontStyle=[color=CornFlowerBlue]"0"[/color] keywordClass=[color=CornFlowerBlue]"7"[/color] />
</LexerType>
)
NewXML := [color=DarkRed]RegExReplace[/color]( FullXML, [color=CornFlowerBlue]"m`ai)(</LexerType>\r\n)(^\s+</LexerStyles>)"[/color], [color=CornFlowerBlue]"$1`t`t"[/color] template [color=CornFlowerBlue]"`r`n$2"[/color] )
[color=DarkRed]FileDelete[/color], Themes - AHK\%file% ; delete file if it already exists
[color=DarkRed]FileAppend[/color], %NewXML%, Themes - AHK\%file%
[color=DarkRed]Return[/color]
}
Here's my
Auto-Completion File ( right click - save as ). This goes in %NP++ Dir%\plugins\APIsMaybe I will attempt to do another lexer in the future ...
I would recommend including
[] as a SYNOPERATOR. Also, it would be nice if
% wasn't grouped with the other SYNOPERATORs. IMO, it would be nice to have this colored the same as the variables, but different than the other SYNOPERATORS - like autoit variables. Plus, it would be nice if a single
% was highlighted for forced expressions. Just some thoughts
.
Also, I've had some issues with the Folding - particularly when using
one-true-brace.