Sublime Text - 插件开发API参考 已翻译 100%

赵亮-碧海情天 投递于 2013/06/01 17:13 (共 6 段, 翻译完成于 06-03)
阅读 10688
收藏 119
9
加载中

sublime模块

方法 返回值 描述
setTimeout(callback, delay) none 在给定的延时delay(毫秒为单位)之后,调用给定的回调callback。具有相同延时值的Callbacks,会根据它们被加入的顺序来运行。从多线程中调用setTimeout方法是安全的.
statusMessage(string) none 设置在状态栏上显示的信息。
errorMessage(string) none 显示给用户一个错误对话框。
messageBox(string) none 给用户显示一个消息盒子。
questionBox(string) bool 显示给用户一个yes / no消息盒子,如果用户选择yes则返回True.
options() Options 返回指向应用选项的参考。
windows() [Window] 返回所有打开窗口的列表。
activeWindow() Window 返回最近使用过的窗口。
runCommand(string, <args>) none 使用给定的参数(参数可选)运行已经命名的ApplicationCommand。
canRunCommand(string, <args>) none 如果带有参数(参数可选)的命令是可用的,则返回True。
makeCommand(string, <args>) String 从一个命令名字和参数中简历一个命令字符串。这个字符串适合作为showCompletions()的参数使用。
packagesPath() String 返回包的路径。
installedPackagesPath() String 返回所用用户*.sublime-package文件的路径。
getClipboard() String 返回剪切板的内容。
setClipboard(string) none 设置剪切板的内容。
getMacro() [String] 返回当前宏。宏表示要运行的命令列表。
setMacro([string]) none 设置当前宏。
wenger67
翻译于 2013/06/02 10:25
5

sublime.View类

表示一个文本缓冲的一个视图。注意到多视图可能指向相同的缓冲,但是它们有各自独一无二的选项和布局。

方法 返回值 描述
id() int 返回唯一指定此视图的一个值。
bufferId() int 返回唯一指定此视图下的缓冲的一个值。
fileName() String 和缓冲关联的文件全名,如果在硬盘中不存在,则返回none.
name() String 分配给缓冲器的名字。
setName(name) none 给缓冲器指派一个名字。
isLoading() bool 如果缓冲器还在从硬盘中加载数据或者还没有准备好使用,则返回ture.
isDirty() bool 如果缓冲器有任何没有保存的修改,则返回真。
isReadOnly() bool 如果缓冲器不能被修改,则返回真。
setReadOnly(value) none 设置缓冲器的只读属性。
isScratch() bool 如果缓冲器是暂存缓冲器,则返回true。暂存缓冲器不会报告为dirty。
setScratch(value) none 设置缓冲器的暂存属性
options() Options 返回视图文件类型选项的一个引用。
window() Window 返回包含视图的窗口的一个引用。
runCommand(string, <args>) none 使用给定的参数(参数可选),运行指定的TextCommand。
canRunCommand(string, <args>) none 如果带有指定参数(参数可选)的命令是可用的,则返回ture。
size() int 返回文件中字符数量。
substr(region) String 以字符串形式,返回指定region的内容。
substr(point) String 返回字符到point的左边。
insert(point, string) int 插入缓冲器中给定字符串到point。返回插入字符的数量:如果tab建被转换到当前缓冲器空间中,可能很难实现此功能。
erase(region) none 从缓冲器中清除当前region的内容。
replace(region, string) none 使用给定的字符替换当前region内容。
sel() RegionSet 返回选区的一个指引。
line(point) Region 返回包含此point的行。
line(region) Region 返回region的一个修改过的拷贝,以便它开始于一行的去起点。注意到它可能会跨过几行。
fullLine(point) Region 和line()类似,但是这个region包括尾部换行符。
fullLine(region) Region 和line()类似,但是这个region包括尾部换行符。
lines(region) [Region] 返回region中的一个行列表(排序过的)。
splitByNewlines(region) [Region] 拆分region,以便每个region已一行返回
word(point) Region 返回包含point的单词。
word(region) Region 返回region的一个修改的拷贝,开始于一个单词的开头,结束于一个单词的结尾。注意到这可能会跨过几个单词。
find(pattern, fromPosition, <flags>) Region 返回匹配正则模式的第一个Region,从给定的point开始,如果没有找到则没有。可选的flags参数可能为sublime.LITERAL,sublime.IGNORECASE或则两者一起或的形式。
findAll(pattern, <flags>, <format>, <extractions>) [Region] 返回所有匹配正则模式的(非重叠)regions。可选的flags参数可能为sublime.LITERAL,sublime.IGNORECASE或者两者或的形式,然后所有匹配将会以格式化字符串被格式化,并放入取出的列表中。
rowcol(point) (int, int) 计算关于point的,基于0的行和列的数量。
textPoint(row, col) int 计算给定的,基于0的行和列的偏移字符。注意到'col'表示从一行开始的字符的数量。
extractScope(point) Region 返回给定point位置字符语法名称的范围。.
syntaxName(point) String 返回给定point位置字符的语法名称。
matchSelector(point, selector) bool 如果选择器匹配给定point位置字符的语法名称,则返回true。
show(point, <showSurrounds>) none 滚动视图以显示给定point。
show(region, <showSurrounds>) none 滚动视图以显示给定 region。
show(regionSet, <showSurrounds>) none 滚动视图以显示给定regionSet。
visibleRegion() Region 返回视图的当前可视区域。
extractCompletions(prefix, <point>) [String] 基于缓冲器中的内容,返回给定prefix的自动补全。补全会根据使用频率来排序,并且如果支持的话,远离给定的point。
showCompletions(point, prefix, [completions]) none 在给定的point,带着给定的补全方式,显示自动补全菜单。如果选择输入,给定的prefix就会被选定的补全方式替代。每个补全方式,可能是一个字符串,或者包含一个表述的元组,或者要运行的命令。
addRegions(key, [regions], scope, <flags>) none 向视图中添加一个region的集合。如果带着给定key的region集合已经存在,它们会被复写。scope被用于获取颜色写入这个region,它的名字为"comment"或者"string"。如果为空,则regions不会被写入。

可选flags参数是关于以下的,一个位逻辑的组合:

  • sublime.DRAW_EMPTY. 写入带有垂直条的空region。默认地,它们不会被写入。
  • sublime.HIDE_ON_MINIMAP. 不要再minimap中显示regions。
  • sublime.DRAW_EMPTY_AS_OVERWRITE. 写入带有水平条的空regions,而不是一个垂直条。
  • sublime.DRAW_OUTLINED. 绘制外框而不是填充。
  • sublime.PERSISTENT. 在session中保存regions。
getRegions(key) [regions] 返回所有key关联的regions。
eraseRegions(key) none 移除指定regions。
setStatus(key, value) none 添加状态key到视图中。值会在状态条中显示,通过key排序,所有状态为一个逗号分离的列表。设置值为空字符串将会清除状态。
getStatus(key) String 返回先前所有和key关联的值。
eraseStatus(key) none 清除是定状态。
wenger67
翻译于 2013/06/02 12:06
4

类 sublime.RegionSet

保存一组选区,并确保它们没有交叠,并按顺序排列:

方法 返回值 描述
clear() none 去除所有选区。
add(region) none 添加指定选区。若在选区组里已存在与之相交的选区,二者会合而为一。
addAll(regionSet) none 添加指定选区组中所有选区到当前选区组中。
subtract(region) none 从选区组中去除指定的选区。
contains(region) bool 判断指定选区是否包含在此选区组中。当包含时,返回true。

类 sublime.Region

表示缓冲的一个区域。当界定区域两个端点的a和b相等时,表示一个空选区。

构造函数 描述
Region(a, b) 用初始值a和b创建一个选区.
属性 类型 描述
a int 选区第一个端点。
b int 选区第二个端点。可以比 a 小,形成一个逆向选区。
方法 返回值 描述
begin() int 返回a和b的最小值。
end() int 返回a和b的最大值。
size() int 返回选区包含的字符数量。始终 >= 0。
empty() bool 当begin() == end()时为true,表示空选区。
cover(region) Region 返回一个跨越指定选区和当前选区的新选区。
intersection(region) Region 返回本选区与指定选区的交叠部分(作为一个新选区)。
intersects(region) bool 判断指定选区与本选区是否相交,当它们完全相同或者有部分相交时,返回true。
contains(region) bool 判断指定选区是否包含于本选区。
contains(point) bool 返回指定的位置是否处于本选区,即begin() <= point <= end()。


赵亮-碧海情天
翻译于 2013/06/02 12:26
1

sublime.Window类

方法 返回值 描述
id() int 返回窗口的唯一标识值。
newFile() View 创建一个新文件。返回视图为空,并且它的isLoaded方法返回true。
openFile(filename, <row>, <col>) View 打开指定文件,返回相对应的视图。行和列都是可选的,并且可以被省略。如果文件已经被打开,它会在前端显示。注意到由于加载文件是异步的,在返回的视图上操作是不可能的,知道它的isLoading方法返回为false。
activeView() View 返回当前编辑的视图。
activeViewInGroup(groupIdx) View 返回给定group中活动的视图。
views() [View] 返回当前窗口中的视图列表。
viewsInGroup(groupIdx) [View] 返回给定group中的视图列表。
focusView(view) none 聚焦给定视图。
numGroups() int 返回窗口中视图groups 的数量。
activeGroup() int 返回当前选中group。
getViewPosition(view) groupIdx, viewIdx 返回给定视图的group,以及group的索引。
setViewPosition(view, groupIdx, viewIdx) none 移动视图到给定group和包含在group内的索引。
runCommand(string, <args>) none 使用给定的参数(参数可选)运行指定的WindowCommand。
canRunCommand(string, <args>) none 如果使用给定参数(参数可选)的命令是可用的,则返回true。
isFullScreen() bool 如果窗口当前为全屏模式,则返回true。
showQuickPanel(key, command, args, <displayArgs>, <flags>) none 使用displayArgs参数,显示快速面板。当键入entry的时候,带有相应选择的显示参数的命令开始运行。如果异步地升级列表,则需要使用key,否则使其为空。displayArgs是可选参数,并且默认地为参数的列表。可选参数flags是一个位逻辑的组合:
  • sublime.QUICK_PANEL_FILES. 指明参数相对应的文件名字,这会改变它们如何被绘制。
  • sublime.QUICK_PANEL_MULTI_SELECT. 使得Ctrl+Enter选择快速面板上所有显示的条目,最大值为16。
  • sublime.QUICK_PANEL_NO_MULTI_SELECT_SAFETY_CHECK. 和上面联合使用,可以移除16条的限制。
  • sublime.QUICK_PANEL_UPDATE_ONLY. 当异步地升级面板的时候,如果面板已经被关闭,忽略升级调用。
  • sublime.QUICK_PANEL_MONOSPACE_FONT. 使用一个等宽字体去绘制快速面板。
showSelectPanel(displayArgs, onSelect, onCancel, flags, <key>, <selectedIndex>) none 使用displayArgs参数显示快速面板。onSelect会运行于每一个被选择的条目,条目的索引作为一个参数被传入。如果面板没有选择任何条目而关闭,onCancel将会运行。

可选参数flags是一个位逻辑的组合:

  • sublime.SELECT_PANEL_FILES. 指明对应于文件名字的参数,这个参数改变它们如何绘制。
  • sublime.SELECT_PANEL_MULTI_SELECT.使得Ctrl+Enter选择快速面板上所有显示的条目,最大值为16。
  • sublime.SELECT_PANEL_NO_MULTI_SELECT_SAFETY_CHECK. 和上面联合使用,可以移除16条的限制。
  • sublime.SELECT_PANEL_UPDATE_ONLY. 当异步地升级面板的时候,如果面板已经被关闭,忽略升级调用。
  • sublime.SELECT_PANEL_MONOSPACE_FONT. 使用一个等宽字体去绘制快速面板。

如果异步地升级列表,则需要使用key,否则使其为空。

selectedIndex应当为最初选择条目的索引,或者省略。

showInputPanel(caption, initialText, onDone, onChange, onCancel) View 显示输入面板,从用户收集一行输入。如果none,onDone和onChange应该是单字符串参数的函数。onCancel应当是一个无参数的函数。用于输入框架的视图被返回。
renderer() String 返回活动Renderer的名字,"DirectX"或者"OpenGL"。
hwnd() HWND 返回window的win32窗口手柄。


wenger67
翻译于 2013/06/02 12:53
2

sublime.Options类

方法 返回值 描述
getString(name) String 返回指定选项的字符串值。
get(name) value 作为合适的类型返回指定选项。
get(name, default) value 作为合适的类型返回指定选项,或者如果没有定义,则使用默认值。
set(name, value) none 设置指定选项。仅仅接受原始的类型。
erase(name) none 移除指定的选项。不要将它从任何父类选项移除。
has(name) bool 如果指定选项存在于Options集合或者它的父类中一个,返回true。

sublimeplugin模块

方法 返回值 描述
(no methods)

sublimeplugin.Plugin类

注意到这些时间中的大多数,都是在视图之下的缓冲器触发的,并且这个方法仅仅被调用一次,并且将第一个视图作为参数。

Methods Return Value Description
onNew(view) none 当一个新的缓冲器创建的时候调用。
onClone(view) none 当从一个存在的视图克隆的时候调用。
onLoad(view) none 当文件完成加载的时候调用。
onClose(view) none 当一个视图关闭(注意,在相同缓冲器中可能存在其他视图)。
onPreSave(view) none 仅仅在一个视图被保存的时候调用。
onPostSave(view) none 一个视图已经被保存之后调用。
onModified(view) none 对一个视图做出改变之后调用
onSelectionModified(view) none 在一个视图中,片区被修改之后调用。
onActivated(view) none 当一个视图获得输入聚焦的时候调用。
onProjectLoad(window) none 一个工程被加载之后调用
onProjectClose(window) none 一个工程被关闭之后调用
onQueryContext(view, key, value) bool or none 当决定去触发一个和给定上下文key关联的key的时候调用。如果插件知道如何响应上下文,它应该返回True或False。如果这个上下文是未知的,它应当返回None。


wenger67
翻译于 2013/06/02 22:58
1

类 sublimeplugin.ApplicationCommand(插件)

方法 返回值 描述
run(args) none 运行命令时将调用此方法。
isEnabled(args) bool 当此时环境允许命令可以被调用,返回 true。默认返回true。

类 sublimeplugin.WindowCommand(Plugin)

方法 返回值 描述
run(window, args) none 运行命令时将调用此方法。
isEnabled(window, args) bool 当此时环境允许命令可以被调用,返回 true。默认返回true。

类 sublimeplugin.TextCommand(Plugin)

方法 返回值 描述
run(view, args) none 运行命令时将调用此方法。
isEnabled(view, args) bool 当此时环境允许命令可以被调用,返回 true。默认返回true。
赵亮-碧海情天
翻译于 2013/06/02 11:47
3
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(17)

深圳市唤梦科技
深圳市唤梦科技
up
赵亮-碧海情天
赵亮-碧海情天
不好意思,之前回复的时候没看到结果,所以多发了一次。
我在评论里发的教程,介绍了关于插件汉化和制作以及发布的整个脉络。在具体的插件编程方面并没有太多写,这也是我过后找来这篇ST插件开发API参考放在这里和其他朋友共同翻译的原因。API是基础,要活学活用的话,可以按照我的那个教程讲的方法去查看那些已经通过插件管理器安装的优秀插件的源码。过会儿我把那个教程也贴到这里,加上指向这篇API译文的链接,就更完善了。
赵亮-碧海情天
赵亮-碧海情天
想看实例以及比较完整的插件发布方法,可以看这个系列教程

http://blog.csdn.net/theforever/article/details/8962727
赵亮-碧海情天
赵亮-碧海情天

引用来自“郑柯”的评论

确实是可以给点实例

想看实例以及比较完整的插件发布方法,可以看这个系列教程

http://blog.csdn.net/theforever/article/details/8962727
赵亮-碧海情天
赵亮-碧海情天

引用来自“长工”的评论

也不给点示例说明这些个API怎么用。

想看实例以及比较完整的插件发布方法,可以看这个系列教程

http://blog.csdn.net/theforever/article/details/8962727
summer_charlie
summer_charlie
想要实例的同学可以查看已安装的 package 源代码呀
郑柯
郑柯
确实是可以给点实例
赵云30
赵云30
也不给点示例说明这些个API怎么用。
艾格尼丝沃霍尔
艾格尼丝沃霍尔
很技术的贴~~
豆仔
豆仔
确实的用了一段时间emacs,也觉得很神奇,用过Org Mode,用过Todo,clone了大师的配置,然后快捷键也都记了(很久没用又忘了- -),但是痛苦的是很难在多个编辑器之间切换,因为快捷键不同,如果用户量大的话另当别论,但是用到其它电脑,能见到Emacs的概率很小,所以还是放弃了,投奔Sublime Text了....Ctrl-C,Ctrl-V快捷键太普遍了,偏偏在Emacs中变成了其它的(确实忘了- -)
返回顶部
顶部