feat: v0.5.0 terminal search, keyword alerts, TeraTerm-compatible TTL
Search (Ctrl+F):
- in-terminal search bar over full scrollback + screen; all hits
highlighted, current hit emphasized; Enter searches upward,
Shift+Enter downward, F3/Esc shortcuts
- hits anchored via ScreenBuffer.DroppedLines so positions stay
correct as the ring buffer drops old lines
Keyword highlighting & tab alerts:
- new Settings -> Highlight page: user-defined keyword list with
per-rule enable and a global toggle (AppSettings.KeywordRules)
- keywords highlighted red in every terminal (visible rows only,
case-insensitive); background tabs flash a red dot when a keyword
appears, cleared when the tab is opened
TTL engine (TeraTerm macro compatibility):
- new TtlExpression parser: parens, and/or/xor/not, comparisons,
* / % + -, hex literals (0x/$), string/int values; legacy fallback
keeps old scripts working
- control flow: goto, call/return (inline, usable inside loops),
for/next, do/loop [while|until], until/enduntil, break, continue,
end, exit, include, mpause; one-line "if <expr> <statement>"
- waits: waitln, waitregex (matchstr/groupmatchstr1-9), recvln,
multi-string wait (TeraTerm semantics), mtimeout
- strings: strlen strcompare strconcat strcopy strinsert strremove
strmatch strscan strreplace strtrim strsplit strjoin tolower
toupper str2int int2str code2str str2code sprintf expandenv
- files: fileopen filereadln filewrite(ln) fileclose filecreate
filedelete filesearch basename dirname makepath foldercreate
folderdelete foldersearch getdir setdir
- misc: beep getdate gettime getenv setenv random exec getver
getttdir uptime ifdefined clipb2var var2clipb inputbox yesnobox
crc32 checksum8/16/32 dispstr
- serial: sendbreak setbaud setdtr setrts sendfile (SerialChannel
gains SendBreak/SetBaudRate/SetDtr/SetRts)
- script Output (incl. dispstr) now echoed gray into the terminal
- quote-aware comment stripping; case-insensitive variables
Docs:
- docs/ttl-script-reference.md rewritten: ETTerms-only commands
first, then the TeraTerm-shared set, with examples
Misc:
- version 0.5.0; About changelog; CLAUDE.md v0.5.0 notes
- restore ETTerms.PduCore ProjectReference in ETTerms/PduMcp csproj
(was dropped in the working tree; required to compile)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>