Add UDQ/ACTIONX support: recognition, highlighting, hover, completion, alignment - #52
Merged
Merged
Conversation
…, alignment Brings the UDQ expression sub-language and ACTIONX blocks into the editor: - Recognise UDQ/ACTIONX: validate that every UDQ statement begins with a control word (ASSIGN/DEFINE/UNITS/UPDATE), and flag an ACTIONX action block that is never closed by a matching ENDACTIO. - Syntax highlighting (tmLanguage) for UDQ control words, UDQ functions (name-followed-by-paren), and comparison/logical operators. - Hover and completion (new udq.ts vocabulary module): hover a UDQ control word or function for its meaning/signature; completion offers control words at statement start and UDQ functions inside expressions. - Column alignment for UDQ expression blocks: right-align the expression column and control words, parse division-safe, and preserve interspersed comments and blank lines inside a UDQ table without breaking the alignment groups. Refs #18 Squashed from 5 commits cherry-picked from feature/udq-expression-align.
magnesj
force-pushed
the
feature/udq-expression-alignment
branch
from
June 29, 2026 12:48
d7815fb to
a24e69b
Compare
42 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings the UDQ expression sub-language and
ACTIONXaction blocks into the editor.Recognition & diagnostics
UDQblock begins with a control word(
ASSIGN/DEFINE/UNITS/UPDATE); flag stray leading tokens. Continuationlines of a statement whose
/is deferred are not flagged.ACTIONX ... ENDACTIOblocks and flag an action block that is neverclosed by a matching
ENDACTIO.Highlighting (tmLanguage)
comparison/logical operators used in expressions.
ACTIONX/ENDACTIOaction-block delimiters as control keywords.Editor (hover & completion)
UDQ/ACTIONXoffers control words at statement start andUDQ functions (inserted with parentheses) inside expressions.
Column alignment
UDQexpression blocks get a dedicated three-column layout — control word,variable, and expression — that lines up each statement's terminating
/andtreats a
/used for division inside the expression as part of theexpression rather than the terminator.
alignment groups.
Docs
Refs #18
Verified:
tscclean; 314 jest tests pass (9 suites).