#nop vim: set filetype=tt:; /* 本文件属于 PaoTin++ 的一部分。 PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp ) 享有并保留一切法律权利 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。 */ #nop 本文件是 xtintin 的一部分,实现了一些 buffer 工具函数。; ///=== { ///// buffer 操作函数 ///// // ## buffer.RawLine // 打印当前触发行的原始文本,而不论当前触发器是否为颜色触发。 // }; #alias {buffer.RawLine} { #line quiet #info output save; #echo {%s} {$info[OUTPUT][LINE]}; }; ///=== { // ## buffer.PlainLine // 打印当前触发行的无色文本,而不论当前触发器是否为颜色触发。 // }; #alias {buffer.PlainLine} { #line quiet #info output save; #echo {%s} {@str.Plain{$info[OUTPUT][LINE]}}; }; ///=== { // #@ buffer.RawLine // 获得当前触发行的原始文本,而不论当前触发器是否为颜色触发。 // }; #func {buffer.RawLine} { #line quiet #info output save; #return {$info[OUTPUT][LINE]}; }; ///=== { // #@ buffer.PlainLine // 获得当前触发行的无色文本,而不论当前触发器是否为颜色触发。 // }; #func {buffer.PlainLine} { #line quiet #info output save; #local line {$info[OUTPUT][LINE]}; #return {@str.Plain{$line}}; }; ///=== { // #@ buffer.GetRawLine <行号> [<截止行号>] // 获得缓冲区中的文本,以原始格式返回。行号从 -1 开始往上数,最后一行为 -1。 // 如果只提供一个行号,则返回字符串,否则返回列表。 // }; #func {buffer.GetRawLine} { #local lineNo {%1}; #local endNo {%2}; #if { "$endNo" != "" } { #if { $endNo < $lineNo } { #local tmp $endNo; #local endNo $lineNo; #local lineNo $tmp; }; }; #local line {}; #line quiet #buffer {get} {line} {$lineNo} {$endNo}; #return {$line}; }; ///=== { // #@ buffer.GetPlainLine <行号> [<截止行号>] // 获得缓冲区中的文本,以无色格式返回。行号从 -1 开始往上数,最后一行为 -1。 // 如果只提供一个行号,则返回字符串,否则返回列表。 // }; #func {buffer.GetPlainLine} { #local lineNo {%1}; #local endNo {%2}; #if { "$endNo" != "" } { #if { $endNo < $lineNo } { #local tmp $endNo; #local endNo $lineNo; #local lineNo $tmp; }; }; #local line {}; #line quiet #buffer {get} {line} {$lineNo} {$endNo}; #if { "$endNo" == "" } { #return {@str.Plain{$line}}; }; #else { #foreach {*line[]} {lineNo} { #local line[$lineNo] {@str.Plain{$line[$lineNo]}}; }; #return {$line}; }; };