This is a sample of how we could implement the colon-t prolint rule:
DEF VAR lv_String AS CHAR NO-UNDO. FOR EACH TTNode NO-LOCK WHERE TTnode.NodeTypeNum EQ NodeTypes:QSTRING#: IF SUBSTR(TTnode.NodeText,LENGTH(TTnode.NodeText) - 1) NE ":T" THEN NEXT. ASSIGN lv_String = SUBSTRING(TTnode.NodeText,2,LENGTH(TTnode.NodeText) - 4). IF LENGTH(TRIM(lv_String)) = LENGTH(lv_String) THEN NEXT. MESSAGE SUBSTITUTE('Line: &1, Column: &2 attrib :T will trim string "&3"',TTnode.NodeLine,TTNode.NodeCol, lv_String) VIEW-AS ALERT-BOX INFORMATION. END.
hey! ma! I _can_ write prolint rules now ! ;)