Overtype
修改模式
整体介绍
该功能不常用,当点击键盘中Insert按键后,输入模式更改。
SCI_SETOVERTYPE,SCI_GETOVERTYPE
SCI_SETOVERTYPE(bool overType) SCI_GETOVERTYPE → bool
启用改写后,每个键入的字符将替换文本插入符号右侧的字符。禁用改写时,将在插入符号处插入字符。如果改写处于活动状态,SCI_GETOVERTYPE将返回true(1),否则将返回false(0)。使用SCI_SETOVERTYPE设置改写模式。
Cut, copy and paste
剪切,复制以及粘贴
整体介绍
用于复制粘贴等常规功能。
SCI_CUT,SCI_COPY,SCI_PASTE,SCI_CLEAR,SCI_CANPASTE,SCI_COPYALLOWLINE
SCI_CUT SCI_COPY SCI_PASTE SCI_CLEAR SCI_CANPASTE → bool SCI_COPYALLOWLINE
这些命令执行标准任务,包括剪切数据并将其复制到剪贴板、从剪贴板粘贴到文档以及清除文档。如果文档不是只读的,并且所选内容不包含受保护的文本,SCI_CANPASTE将返回非零。如果需要“可以复制”或“可以剪切”,请使用SCI_GETSELECTIONEMPTY(),如果有任何非空的选择范围意味着复制或剪切到剪贴板应该有效,则该值将为零。
SCI_COPYALLOWLINE的工作原理与SCI_COPY相同,只是如果选择为空,则复制当前行。在Windows上,将向剪贴板添加一个额外的“MSDEVLineSelect”标记,然后在SCI_粘贴中使用该标记将整行粘贴到当前行之前。
SCI_COPYRANGE,SCI_COPYTEXT
SCI_COPYRANGE(position start, position end) SCI_COPYTEXT(position length, const char *text)
SCI_COPYRANGE将一系列文本从文档复制到系统剪贴板,SCI_COPYTEXT将提供的文本复制到系统剪贴板。
SCI_SETPASTECONVERTENDINGS,SCI_GETPASTECONVERTENDINGS
SCI_SETPASTECONVERTENDINGS(bool convert) SCI_GETPASTECONVERTENDINGS → bool
如果设置了此属性,则在粘贴文本时,任何行尾都会转换为与SCI_SETEOLMODE设置的文档行尾模式相匹配。默认为true。
SCI_REPLACERECTANGULAR
SCI_REPLACERECTANGULAR(position length, const char *text)
用给定文本替换选定文本或空选择。插入的执行方式类似于矩形粘贴:给定文本中的新行被解释为移动到下一行而不插入新行,除非在文档末尾。
Error handling
整体介绍
用于当前Scintilla错误状态。
SCI_SETSTATUS,SCI_GETSTATUS
SCI_SETSTATUS(int status) SCI_GETSTATUS → int
如果发生错误,Scintilla可能会设置一个内部错误号,该编号可以通过SCI_GETSTATUS检索。要清除错误状态,请调用SCI_SETSTATUS(0)。状态值从1到999为错误,状态SC_Status_WARN_START(1000)及以上为警告。当前定义的状态为:
错误码 | 值 | 说明 |
---|---|---|
SC_STATUS_OK | 0 | No failures |
SC_STATUS_FAILURE | 1 | Generic failure |
SC_STATUS_BADALLOC | 2 | Memory is exhausted |
SC_STATUS_WARN_REGEX | 1001 | Regular expression is invalid |
Undo and Redo
整体介绍
回退与重做。
SCI_UNDO,SCI_CANUNDO
SCI_UNDO SCI_CANUNDO → bool
SCI_UNDO撤消一个操作,或者如果撤消缓冲区已达到SCI_ENDUNDOACTION点,则所有操作将返回到相应的SCI_BEGINUNDOACTION。
如果没有要撤消的内容,SCI_CANUNDO将返回0,如果有,则返回1。您通常会使用此消息的结果来启用/禁用编辑菜单撤消命令。
SCI_EMPTYUNDOBUFFER
SCI_EMPTYUNDOBUFFER
该消息
该消息用于清空当前撤消缓冲区以及重做缓冲区,执行该命令后,当前文档将显示为未修改。本消息的执行将不会触发SCN_SAVEPOINTREACHED 的通知。
SCI_SETUNDOCOLLECTION,SCI_GETUNDOCOLLECTION
SCI_SETUNDOCOLLECTION(bool collectUndo) SCI_GETUNDOCOLLECTION → bool
SCI_SETUNDOCOLLECTION消息用于控制Scintilla是否收集撤消信息。传入true(1)以收集信息,传入false(0)以停止收集。如果停止收集,还应使用SCI_EMPTYUNDOBUFFER以避免撤消缓冲区与缓冲区中的数据不同步。
如果您使用Scintilla存储程序(日志视图)生成的文本,或者在经常删除和重新生成文本的显示窗口中,可以关闭保存撤消信息。
SCI_BEGINUNDOACTION,SCI_ENDUNDOACTION
SCI_BEGINUNDOACTION SCI_ENDUNDOACTION
这两个消息用来标记一组操作的开始和结束,用来批量撤销或重做。
SCI_ADDUNDOACTION
SCI_ADDUNDOACTION(int token, int flags)
该消息可以将其自己的操作添加到撤消堆栈中,并且在撤消(SC_PERFORMED_UNDO)或重做(SC_PERFORMED_REDO)操作时,将使用SC_MOD_CONTAINER标志向容器发送SCN_MODIFIED通知。提供的令牌参数将在通知的令牌字段中返回。
例如,如果容器希望允许撤消和重做“toggle bookmark”命令,那么它可以在每次执行该命令时调用SCI_ADDUNDOACTION(line,0)。然后,当它收到撤销或重做的通知时,它会在令牌字段给出的行上切换书签。如果有不同类型的命令或参数需要存储到撤销堆栈中,那么容器应该为文档维护自己的堆栈,并使用该堆栈中的当前位置作为SCI_ADDUNDOACTION(line)的参数。SCI_ADDUNDOACTION命令不会组合到单个撤消事务中,除非与SCI_BEGINUNDOACTION和SCI_ENDUNDOACTION组合在一起。
当flags参数是UNDO_MAY_COALESCE(1),则器操作可以与任何插入和删除操作合并到单个复合操作中。否则flags参数为UNDO_NONE(0)。合并将可合并的容器操作视为透明的,所以仍然只将看起来像键入或删除的插入组合在一起,看起来像多次使用退格键或删除键。