Awesome
company-sourcekit
company-mode completion for Swift projects via SourceKit with the help of SourceKittenDaemon.
<img src="https://raw.githubusercontent.com/nathankot/company-sourcekit/master/cap.gif" width="384" height="281" />Limitations
- Only works when there is a
*.xcodeproj
up the directory tree. - OSX-only, since this communicates with SourceKit which only runs on OSX (AFAIK)
- You need to have
curl
on your machine
Installation
First install SourceKittenDaemon. Make sure that it's in
the exec-path
of your Emacs.
And then you can install company-sourcekit
in the following ways:
MELPA
M-x package-install <RET> company-sourcekit <RET>
Source
Make sure this repository is in your load-path
, and then:
(require 'company-sourcekit)
(add-to-list 'company-backends 'company-sourcekit)
Configuration
company-sourcekit-use-yasnippet
- Use yasnippet for completion expansion. By default this is enabled if yasnippet is detected.company-sourcekit-verbose
- Log company-related messages to*messages*
with verbositysourcekit-available-ports
- A list of ports thatsourcekittendaemon
is allowed to listen on.sourcekit-sourcekittendaemon-executable
- Location of thesourcekittendaemon
executablesourcekit-curl-executable
- Location of thecurl
executablesourcekit-verbose
- Log sourcekittendaemon-related messages to*messages*
with verbosity
How it works
- company-sourcekit communicates with sourcekittendaemon via HTTP.
- Which in turn communicates with SourceKit using the sourcekitten framework.
- sourcekittendaemon will read your
.xcodeproj
file and determine the best configuration options to pass to sourcekit.
Credits
- Big thanks to @terhechte for spearheading SourceKittenDaemon!
- @jpsim for researching Sourcekit and making sourcekitten. Without which this would not be possible!
Contributing
Is most welcome. Please use a feature branch and format your code with
indent-region
d(^.^)b