From bd87ff40e73929e761e1233aa812a6736cacbed1 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sun, 8 Dec 2024 05:22:17 +0300 Subject: implemented the ^Q command for converting between line and glyph positions * As known from DEC TECO, but extended to convert absolute positions to line numbers as well. :^Q returns the current line. * Especially useful in macros that accept line arguments, as it is much shorter than something like ^E@ES/LINEFROMPOSITION//+Q.l@ES/POSITIONFROMLINE//:^E-. * On the other hand, the fact that ^Q checks the line range means we cannot easily replace lexer.checkheader with something like [:J 0,^Q::S...$ ]: Using SCI_POSITIONFROMLINE still has the advantage that it returns `Z` for out-of-bounds ranges which would be cumbersome to write with the current ^Q. * Perhaps there should be a separate command for converting between absolute lines and positions and :^Q should be repurposed to return a failure boolean for out-of-range values? * fnkeys.tes could be simplified. --- lib/scite2co.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/scite2co.lua') diff --git a/lib/scite2co.lua b/lib/scite2co.lua index 7c49aaa..ab3ccf4 100755 --- a/lib/scite2co.lua +++ b/lib/scite2co.lua @@ -107,7 +107,7 @@ local file_patterns = expand(props["file.patterns."..language]) io.write([=[ @[lexer.test.]=], language:lower(), [=[]{ ]=]) -if shbang then io.write([=[ _#!M]=], shbang, [=[M[lexer.checkheader]"S -1 ' +if shbang then io.write([=[ _#!M]=], shbang, [=[:M[lexer.checkheader]"S -1 ' ]=]) end local patterns = {} for pattern in file_patterns:gmatch("[^;]+") do -- cgit v1.2.3