There wasn’t a keyword list in the docs yet, so I’ve written one. It’s now on the docs site: CFML Keywords :: Lucee Documentation. It’s grouped by purpose: statements without arguments (return, break, continue, abort, exit, rethrow, retry), control flow, declarations and modifiers, new and ::, literals, word operators, and scopes. It also lists which tags can be written in script.
Most tags and functions are defined by data, so for those you can ask Lucee at runtime. getTagList() and getTagData() give you the tags, and getFunctionList() and getFunctionData() give you the functions. Please note that getFunctionKeywords() returns search keywords for functions, not reserved words, so it’s not what you want for highlighting.
On version information: the data from getFunctionData() and getTagData() can include an introduced version, but it’s only filled in for some entries, so there’s no complete “added in version X” list yet. The language keywords have no version data at all.
A few other helpers:
The Lucee MCP service (https://mcp.lucee-services.com/) can answer questions about tags and functions. See the MCP recipe in the docs.
astFromPath() and astFromString() return the parsed syntax tree of a CFML file or string, which can be handy for checking how the parser sees something.
From Lucee 8.0 on, we publish -config-schema.json and -env-vars.json next to the org.lucee:lucee artifact on Maven Central.
Once your Notepad++ UDL is ready, please share it in a new forum post with a link to the GitHub repo, so others can find it. I’m looking forward to seeing it!