TL;DR
I wrote a simple UDL script a couple of years ago under Ko 9 that worked well. All it needs to do is highlight at the beginning of a line any tags in the form [x] where x is a letter. Ko 10 broke it with no explanation - only that it was “incompatible”. Ko 11 says the same thing when I import it, even though I built it with the Ko 11 SDK.
Also, the Ko 11 IDE tools for building the xpi are broken so I can only use the command line methods outlined for Ko 9 => koext.py build to create the xpi.
My questions are as follows: Have the language extension build tools for Ko 11 been tested? If so, what am I doing wrong. If not, when do you expect them to work? I do not want to spend more time on this if it is something that cannot be done yet.
Details:
If I try to build the xpi using Project - Template - Create Komodo Language I get this
which was identified as a bug in September but never fixed? Also the template directories and files are not created.
As I mentioned above I can build an xpi from the command line using koext.py and the python version provided in the Ko 11 sdk folder. However it is flagged as incompatible if I try to load it. This also occured in Ko 10 but not in Ko 9.
Finally here is the simple UDL file that gets the job done if I can get it compiled for Ko 11. Any ideas on what I should do or how long I should wait for the tools to catch up?
# UDL lexer for once
language once
family markup
initial IN_M_DEFAULT
# Null-transition to get into SSL state
state IN_M_DEFAULT:
/./ : redo, => IN_SSL_DEFAULT
# server side language
#family ssl
# Specify the min and max styles we'll be referring to.
start_style SSL_DEFAULT
end_style SSL_VARIABLE
# Define what happens when in default (initial) state.
state IN_SSL_DEFAULT:
# ----------- Entering Comments ---------- #
# Hash-style one line comments
'#' : paint(upto, SSL_DEFAULT), => IN_SSL_COMMENT_TO_EOL
# ----------- Entering Whitespace ---------- #
# Just stay in whatever style we currently are using.
#/[$WS]+/ : #stay
# ----------- Entering Strings ---------- #
# ----------- Entering Numbers ---------- #
# ----------- Entering Identifiers ------ #
# ----------- Entering Operators -------- #
# ----------- Entering Method Tags ------ #
#/^(\[[^\s\\]])/: paint(upto, SSL_DEFAULT), => IN_SSL_TAG
/^\s\s(\[[r\\]])/: paint(upto, SSL_DEFAULT), => IN_SSL_TAG
/^\s\s(\[[i\\]])/: paint(upto, SSL_DEFAULT), => IN_SSL_TAG
/^\s\s(\[[v\\]])/: paint(upto, SSL_DEFAULT), => IN_SSL_TAG
/^\s\s(\[[e\\]])/: paint(upto, SSL_DEFAULT), => IN_SSL_TAG
/^\s\s(\[[t\\]])/: paint(upto, SSL_DEFAULT), => IN_SSL_TAG
/^(\[[s\\]])/: paint(upto, SSL_DEFAULT), => IN_SSL_TAG
# --------- Exit Method Tabs -------------------- #
state IN_SSL_TAG:
/\]/ : paint(include, SSL_STRING), => IN_SSL_DEFAULT
state IN_SSL_COMMENT_TO_EOL:
/[\r\n]/ : paint(upto, SSL_COMMENT), => IN_SSL_DEFAULT # back to default state
fold "[" SSL_OPERATOR +
fold "]" SSL_OPERATOR -