' --- Detect logical/shift compound assignment operators (and=, or=, xor=, eqv=, imp=, shr=, shl=) ---
dim as string sLow = lcase(sWord)
if (sLow = "and" or sLow = "or" or sLow = "xor" or sLow = "eqv" or sLow = "imp" or sLow = "shr" or sLow = "shl") then
' Save current position, skip whitespace after the word
dim as long j = i
while j <= nLen
dim as long c = asc(mid(sText, j, 1))
if (c <> 32) and (c <> 9) then exit while
j += 1
wend
' Check if the next non-whitespace character is '='
if j <= nLen then
dim as long c = asc(mid(sText, j, 1))
if c = 61 then ' '='
' Only merge if there is no whitespace between the word and '=' (i.e. j == i)
if j = i then
i = j + 1 ' Skip '='
sWord &= "=" ' Merge into "and=" etc.
' Set this token type to operator, not word
tokens(nCount).kind = FMTTOK_OP
tokens(nCount).text = sWord
nCount += 1
bStmtStart = false
continue while ' Return to the main loop to continue processing subsequent characters
end if
end if
end if
end ifprivate function FMT_IsBinaryOp( byref sOp as string ) as long
select case sOp
case "=", "+", "-", "*", "/", "\", "^", "<", ">", "<=", ">=", "<>", "&", _
"+=", "-=", "*=", "/=", "\=", "^=", "&=", "=>", _
"and=", "or=", "xor=", "eqv=", "imp=", "shr=", "shl="
return true2) The Extern statement has two forms: block and single-line.extern
end externFor the single-line form, when a line is fully entered, e.g. extern foo alias "foo" as longthe next line continues to indent incorrectly.' Add single-line extern detection to avoid unwanted auto-indent
case "extern"
' If there's only one word, or the second word starts with a double quote, treat as a block opener; otherwise it's a single-line declaration
if nWords < 2 then
return FMTLINE_OPENER
else
if left(sW2, 1) = """" then
return FMTLINE_OPENER ' Extern "C" ...
else
return FMTLINE_PLAIN ' Extern foo Alias ...
end if
end if3) In the current version of Tiko (compared to 1.3.2), there is a regression in the auto-completion of nested blocks. Specifically:Dim Shared g_SysCP As Long
g_SysCP = GetACP()Then I modified three modules:Quote from: José Roca on August 06, 2026, 09:14:36 PMIt is not a problem of the size of the font, but of the space between lines. Like writing with Word using 1.5 between lines. The same problem that happened with the menus in an early version.Yes, I kind of figured it would result in the same issue as the top menu problem we dealt with. I'll get it all fixed up.