我们都知道sublime text for Mac是应用在Mac上的一款前端代码开发神器,它支持语法高亮、代码补全、代码片段(Snippet)、代码折叠、行号显示、自定义皮肤、配色方案等所有其它代码编辑器所拥有的功能的同时,又保证了其飞快的速度!下面Macz小编就为大家介绍一下sublime text mac版实施输入处理程序的技巧!
sublime text mac版实施输入处理程序的技巧
由于输入处理程序使用的是相当通用的界面,因此在命令中添加一个界面可能需要仔细考虑,并且可能不是最直观的过程。
我们将实现一个示例输入处理程序,并说明您可以针对高级配置进行调整的更多齿轮。
重要
要为命令使用输入处理程序, 该命令必须在“ 命令面板”中具有一个条目。这很容易忘记,因此请务必记住!
让我们从一个非常简单的命令开始,该命令将给定的文本插入到视图中。以下两个文件可以放在任何包文件夹中,包括“用户”。
该*Command.input方法
在执行命令时,它会接收其run方法的键控参数。如果签名中的参数不提供默认值,则只有在为所有此类参数都提供了参数的情况下才能调用它。调用参数太少的命令将失败,并导致将异常打印到控制台。
在这种情况下,命令可以实现该input方法 并返回输入处理程序实例,该实例为Sublime Text提供了必要的信息以显示输入处理程序。
该input函数采用一个args参数,该参数是命令的所有当前已知参数的决定。由于我们知道此时仅text缺少必需的参数(),因此我们将不使用该参数。
我们尚未定义MyTextInputHandler,所以让我们开始吧。
子类化 TextInputHandler
要为文本创建简单的输入处理程序,我们创建的子类。在子类中,我们可以覆盖特定的方法。对于最基本的功能,我们需要。此外,为方便起见,我们定义。
当然,您仍然可以像以前一样从按键绑定或通过控制台调用命令。提供所有必需的参数后,将跳过输入处理程序,并立即运行命令。
渲染预览
preview每次修改输入的文本都会调用该方法,并允许在“命令面板”下方显示一个小的预览。预览可以是纯文本,也可以使用minihtml 作为启用了标记的格式。
下面的代码片段扩展了我们的输入处理程序,以显示将要插入的字符数:
还有其他可以覆盖的方法。这些在文档中进行了描述。
# 使用动态数据
您可能已经注意到,我们的MyTextInputHandler课程与我们的课程完全分开SampleCommand。如果我们希望输入处理程序依赖于某些动态数据(例如当前视图的选择),则必须将此类值提供给输入处理程序的构造函数。
以下代码片段将文本命令的View实例传递给输入处理程序的构造函数。构造函数本身将实例存储在instance属性中,以后从中访问它preview。
提供选项列表 ListInputHandler
除了提供自由格式的输入外,您还可以为用户提供他们可以选择的值列表。这是通过细分处理sublime_plugin.ListInputHandler 并提供一种list_items返回值列表以供选择的方法来完成的。该列表可以是字符串列表或元组列表,其中第一个元素表示要显示的文本,第二个元素表示要插入的值作为命令的参数。
请注意,我们name此处未实现,因为Sublime Text可以使用与命令名称相同的逻辑,但通过剥离“ InputHandler”,从类名自动推断出输入处理程序的目标参数名称。
提醒
请记住,您需要通过在.sublime-commands文件中指定上述命令来使其对命令面板可用。
以上就是sublime text mac版实施输入处理程序的技巧,希望对您有所帮助。