执行解析器
一个插件,允许用户为粘贴命令和复制行命令添加自定义Python解析器命令。
详细信息
安装
- 总数 385
- Win 255
- Mac 77
- Linux 53
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Readme
Sublime Text插件 - 执行解析器
执行解析器 是一个Sublime插件,它允许用户使用内置命令或在粘贴和复制行之前添加自定义命令(Python)来解析内容。它利用了Sublime的多选功能,并按照Sublime的原生粘贴和复制行功能运行。
内部X到Y插件
内部驼峰式插件
安装
包控制(推荐):如果您尚未安装,请安装 包控制。然后使用 安装包 命令搜索 执行解析器。
手动:将(repo)克隆到您的包文件夹中(在Sublime中:首选项 > 浏览包…),然后重命名文件夹为 执行解析器。
用法
插件命令
执行解析器:解析并粘贴 (Ctrl+Shift+v) - 解析剪切板中的字符串并将其粘贴到所选区域。
执行解析器:解析并复制 (Ctrl+Shift+c) - 解析所选区域的字符串并直接在它后面复制。
执行解析器:设置解析器 (Ctrl+Shift+x) - 调用选择框选择要应用的命令。选择命令后,您可以将其应用到所需的解析器命令上。您可以应用到
- 全部 - 将所选命令应用到 “解析并粘贴命令” 和 “解析并复制命令”
- 仅粘贴 - 将所选命令应用到 “解析并粘贴命令”
- 仅复制 - 将所选命令应用到 “解析并复制命令”
执行解析器:用户自定义命令选项 (Ctrl+Shift+z) - 调用用户自定义命令的选项面板
- 重新初始化命令 - 在您添加/编辑任何用户命令或编辑 commands.json 文件后,您需要运行此命令来重新初始化插件。否则,设置解析器 面板中的命令列表不会更新。
- 编辑 commands.json - 它是一个 json 文件,用于存储所有用户命令,它位于 [Packages]/User/Exec 解析器。
- 添加新命令 - 添加一个新的用户命令。您将被提示输入文件名。请注意,您不需要在文件名后添加任何扩展名。在您输入文件名并且文件不存在时,它将打开 commands.json 和命令文件。您可以在其中添加您的代码。但别忘了在更新后运行 重新初始化命令。-)
- 编辑命令 - 它将显示所有用户命令的列表,您可以从中选择您要编辑的命令。但别忘了在更新后运行 重新初始化命令。-)
- 删除命令 - 它将显示所有用户命令的列表,您可以从中选择您要删除的命令。
内置命令
默认情况下,安装后即可使用几个内置命令。
none
//Do nothing
dash-case
//Convert to dash case
snake_case
//Convert to snake case
camelCase
//Convert to camel case
X to Y
//Convert X to Y, Width to Height and so on
Swap equal positions
//Change var a = b; into var b = a;
使用命令
首先,您需要选择用作解析器命令(粘贴/复制)的命令。假设您想将粘贴命令更改为将剪贴板中的文字粘贴为 骆驼式,您可以按照以下步骤操作:
- 按 (Ctrl+Shift+x) 打开 执行解析器:设置解析器 面板。
- 选择 骆驼式。
- 选择 仅粘贴。
然后每次您点击 (Ctrl+Shift+v) 触发 执行解析器:解析并粘贴 解析器命令,输出结果将以骆驼式显示。对于 执行解析器:解析并复制 同样如此。
您选择的命令将保存在您再次更改它或重启 Sublime Text 之前。有一个方法可以在重启 Sublime Text 后保存您选择的命令。您可以通过简单地将其添加到 用户设置 json 文件中来实现。
"update_default_command_on_change" : true
默认情况下,执行解析器:解析并粘贴和执行解析器:解析并复制的命令都是“无”。这意味着它没有任何作用。我这样做的原因是,您可以更改此插件的快捷键以替代 sublime 中的原生 粘贴 和 复制行 功能。因此,您可以随意用原生粘贴和复制行快捷键替换此插件的快捷键。
创建您的命令
假设您想创建一个命令在数字前添加美元符号。按 (Ctrl+Shift+z) 打开 执行解析器:用户命令选项 面板,选择 “添加新命令”。像“dollarize”一样输入命令文件名(无需扩展名),然后按 enter。然后它将打开两个文件:
- commands.json - 存储所有用户命令描述的 json 文件。如果您想,您可以在此文件中更改名称和描述。
- [filename].py(在此例中,dollarize.py) - 您放置脚本的地方。
在 dollarize.py 中输入以下 python 脚本:
output = re.sub(r'(?<![\$\d])(\d+)', r'$\1', output)
保存它,然后再次按 (Ctrl+Shift+z) 打开 执行解析器:用户命令选项 面板。选择 重新初始化命令 让插件更新脚本。现在您可以开始测试它了。
您正在编辑的脚本文件是通过 python 中的 exec() 命令执行的。这意味着您可以利用它并使用 if/else 语句、循环和函数。这里还有一个示例
def upperAndLower(char, isUpper):
if isUpper:
return char.upper()
else:
return char.lower()
arr = list(output)
for i in range(0, len(arr)):
arr[i] = upperAndLower(arr[i], i & 1)
output = ''.join(arr)
<< My name is Edan.
>> mY NaMe iS EdAn.
很简单!
公开变量
我们公开以下变量,以方便您构建命令
- 输出(字符串) - 解析命令应用到的单行文本。如果用户选择多行,我们在传递到输出变量之前将行分割开。所以,在任何情况下,您都只处理一行。我知道这可能会破坏多行解析的需求。我这样做是为了尝试模仿原生函数的行为。我们可能会在以后的版本中公开更多内容,但现在的工作原理就是这样。
- parserType(字符串) - 显示用户使用的解析命令。可以是“粘贴”或“复制”。
- 选择文本(字符串) - 当前选择的文本。如果用户使用多选,每个选择都使用自己的实例。该变量可以是多行的。
- 剪贴板文本(字符串) - 剪贴板内容。该变量可以是多行的。
- 行索引 - 您正在编辑的行索引。
- 行数 - 区域中的行数。
公开的Python模块
- shutil
- math
- datetime
- json
- os
- re
SETTING
/* The default parser commands */
"paste_command_id" : "none",
"duplicate_command_id" : "none",
/* To save the command you set as default */
"update_default_command_on_change" : false,
TODO
- 添加更多默认执行命令
- 减少在命令测试期间用户调用重新初始化命令的次数
目标
本插件的目标是完全替代原生的粘贴命令和行复制命令。我设计的方式是,如果未使用任何解析命令,它表现与原生命令相同。
贡献
这是我第一次尝试Python,我通常不是一个好的程序员。所以,如果您注意到其中有什么问题,请提出拉取请求。 如果您有想要分享的酷命令,请发起拉取请求。随着您的贡献,这个插件将变得更加强大:)
关于我
我的名字是Edan Kwan(@edankwan),我是一个前端网页开发者。我对Python一无所知,我通常编程能力很弱。我总是觉得将短划线形式的HTML属性复制到camelCase JavaScript作为变量名称很烦人,所以我想要构建一个Sublime插件来做这件事。然而,我不想只做一个小插件,所以我决定让它变得更大!我非常确信你们可以写得比我更好。所以,请提出拉取请求来帮助它成长! :)