ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

SwiftKitten

johncsnyder 全部

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

raw.​githubusercontent.​com

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许可。