SwiftKitten
Sublime Text的Swift自动补全,通过可爱的SourceKitten框架实现
详细信息
安装次数
- 总计 5K
- Win 1K
- Mac 3K
- Linux 658
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 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 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 |
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
SwiftKitten
SwiftKitten是Sublime Text的Swift自动补全插件,通过可爱的SourceKitten框架实现。比XCode快!
这个插件是新的,仍处于测试阶段!欢迎任何建议。如果你发现一个bug,请开启一个问题。如果你想贡献,请随意fork并提交一个拉取请求。
安装
首先,确保安装SourceKitten!
SwiftKitten可以通过Package Control获取。
要手动安装,将此仓库克隆到你的包目录中
git clone https://github.com/johncsnyder/SwiftKitten.git
在Sublime中,从命令栏运行“首选项:浏览包”,以找到你的包目录。
依赖项
依赖项包含在SwiftKitten包中。
ijson
SwiftKitten使用ijson来解析SourceKitten的补全结果。默认情况下,SwiftKitten将使用纯Python后端。如果可用的更快后端,则SwiftKitten将自动加载它。强烈建议您构建cffi后端。
cffi [可选]
转到[Packages]/SwiftKitten/cffi/
并运行python setup.py build
。这将在当前位置构建cffi。确保用python3.3
运行此命令。必须兼容Sublime。下次你启动Sublime时,SwiftKitten将加载yajl2_cffi
后端。
缓存
SwiftKitten使用pygments来解析自动补全前缀,并将结果缓存以便下次请求时使用。首次自动补全函数时会有轻微的延迟,但下次会非常快。例如
SwiftKitten会记住对foo
的自动补全结果并将它们缓存。下次您键入foo.
时,SwiftKitten将返回缓存的文档。另外,如果缓存的文档已过期(请参考包设置中的cache_timeout
),将发送自动补全请求。如果结果已更改,SwiftKitten将更新自动补全窗口。默认缓存过期时间为1秒,确保您始终看到最新的结果,同时避免向SourceKitten发送不必要的文献请求。
要手动清除缓存,请从命令板运行SwiftKitten: Clear Cache
(这将清除框架缓存)。
框架
SwiftKitten会分析您的文件以自动查找导入的框架。SwiftKitten将框架的全局变量分开请求和缓存,因为它们只需请求一次,通过SourceKitten请求它们可能需要一段时间(例如,Foundation需要20-30秒)。您可以排除自动补全结果中的特定框架(请参考包设置中的exclude_framework_globals
)。
框架缓存在不同的会话之间是持久的。它保存到Sublime的缓存文件夹中,并在保存视图时保存,并下次加载SwiftKitten时加载。
外部框架
请将外部框架的路径列表添加到设置中的extra_framework_paths
下。这些将通过编译器参数传递到SourceKitten。
文档[实验性]
通过从命令板运行SwiftKitten: Display Documentation
,或者按ctrl+alt+d
来运行SwiftKitten: Display Documentation
,将搜索docset(设置中指定的路径)通过docsetutil显示最相关的条目在html弹出窗口中。
设置
关于更多设置和信息的描述,请参阅SwiftKitten.sublime-settings
。将其复制到[Packages]/User
以自定义设置。
/*
SwiftKitten default settings.
All settings can be overriden in a sublime project file.
*/
{
/*
Path to SourceKitten binary.
See `https://github.com/jpsim/SourceKitten`.
*/
"sourcekitten_binary" : "/usr/local/bin/sourcekitten",
/*
sdk to link with. SourceKitten will find the
default sdk (OS X) if left blank.
*/
"sdk" : "",
/*
Extra framework search paths.
To enable autocompletion for external frameworks,
add the path to the directory containing the
framework here.
*/
"extra_framework_paths" : [],
/*
Extra compiler arguments to SourceKitten.
*/
"extra_compilerargs" : "",
/*
Exclude globals from specific frameworks in auto-
completion results. For example, `import Foundation`
adds a lot of bloat to autocomplete results, and can
slow down typing.
*/
"exclude_framework_globals" : ["Foundation"],
/*
Timeout for cached completion data (in seconds).
*/
"cache_timeout" : 1.0,
/*
Limit to number of concurrent completion requests.
*/
"concurrent_request_limit" : 4,
/*
Enable linting. This will query structure info via
SourceKitten, and underline any parse errors. Move
the cursor to the error position to see the error
description in the status bar.
*/
"linting" : true,
/*
Supress Sublime Text regular completions.
*/
"suppress_word_completions" : true,
"suppress_explicit_completions" : true,
/*
Path to docset.
Running `ctrl+alt+d` will search the docset for the
current word or selection and display the docs in
a popup.
*/
"docsetutil_binary" : "/usr/local/bin/docsetutil",
"docset" : "/Applications/Xcode.app/Contents/Developer/Documentation/DocSets/com.apple.adc.documentation.OSX.docset"
}
此外,可以通过Sublime项目文件覆盖设置。
建议将以下内容添加到用户或Swift语法特定首选项中
"auto_complete_triggers": [ {"selector": "source.swift", "characters": "."} ]
故障排除
如果自动补全不起作用,请打开Sublime Python控制台(ctrl+`
)并查看是否有错误报告。
待办事项
添加对多文件项目和模块的支持(例如在Sublime项目文件中指定的)。
解析Xcode项目以获取文件列表和嵌入式框架(类似于SourceKittenDaemon)。
添加Xcode构建、运行和调试命令。构建系统不够灵活。在Sublime项目文件中指定Xcode项目。或者如果Xcode项目在Sublime项目文件夹中,则使用此作为默认项目。
在Sublime包安装时自动构建cffi吗?我不确定Sublime的Python解释器是否有构建所需工具。简要尝试过,但无法正常工作。
添加对多个docset的支持。使文档上下文相关。添加对API链接的支持,以便可以导航文档。
版权
SwiftKitten采用MIT许可。