This repository has been archived by the owner on Mar 27, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 52f6dbf
Showing
9 changed files
with
759 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
*.pyc | ||
*.bak | ||
*.cache | ||
.DS_Store | ||
.idea |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[ | ||
{ "caption": "SwiftKitten: Clear Cache", "command": "swift_kitten_clear_cache" } | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
SwiftKitten is licensed under the MIT "Expat" License: | ||
|
||
> Copyright (c) 2016: John Snyder. | ||
> | ||
> Permission is hereby granted, free of charge, to any person obtaining | ||
> a copy of this software and associated documentation files (the | ||
> "Software"), to deal in the Software without restriction, including | ||
> without limitation the rights to use, copy, modify, merge, publish, | ||
> distribute, sublicense, and/or sell copies of the Software, and to | ||
> permit persons to whom the Software is furnished to do so, subject to | ||
> the following conditions: | ||
> | ||
> The above copyright notice and this permission notice shall be | ||
> included in all copies or substantial portions of the Software. | ||
> | ||
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||
> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | ||
> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||
> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||
> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
## SwiftKitten | ||
|
||
SwiftKitten is a Swift autocompleter for Sublime Text, via the adorable | ||
[SourceKitten](https://github.com/jpsim/SourceKitten.git) framework. | ||
|
||
|
||
![](demo.gif) | ||
|
||
|
||
This package is new and still in beta. I welcome any suggestions. If | ||
you find a bug, please open an issue. | ||
|
||
|
||
### installation | ||
|
||
SwiftKitten is not yet available via Package Control (soon hopefully). | ||
|
||
To install manually, clone this repository into your packages directory: | ||
|
||
`git clone https://github.com/johncsnyder/SwiftKitten.git` | ||
|
||
In Sublime, run `Preferences: Browse Packages` from the command palette | ||
to find your packages directory. | ||
|
||
### dependencies | ||
|
||
|
||
#### ijson | ||
|
||
SwiftKitten uses [ijson](https://pypi.python.org/pypi/ijson) to parse | ||
completions results from SourceKitten. By default, SwiftKitten will use | ||
the pure python backend. If the faster `yajl2_cffi` backend is available, | ||
SwiftKitten will automatically load it. It is highly recommended that | ||
you build the cffi backend. | ||
|
||
|
||
#### building cffi [optional] | ||
|
||
Navigate to `[Packages]/SwiftKitten/cffi/` and run `python setup.py build`. | ||
This will build cffi in place. Next time you start Sublime, SwiftKitten will | ||
load the `yajl2_cffi` backend. | ||
|
||
|
||
|
||
### caching | ||
|
||
SwiftKitten uses [pygments](http://pygments.org) to parse autocomplete | ||
prefixes and caches the result for the next time you request it. There will | ||
be a slight delay the first time you autocomplete a function, but the next | ||
time, it will be instantaneous. For example | ||
|
||
![](example.png) | ||
|
||
SwiftKitten will remember the autocomplete results for `foo` and cache them. | ||
The next time you type `foo.`, SwiftKitten will return the cached results. | ||
Also, an autocomplete request will be sent if the cached results have timed | ||
out (See `cache_timeout` in package settings). If the results | ||
have changed, SwiftKitten will update the autocomplete window. A default | ||
cache timeout of one second ensures you will always be shown up-to-date results, | ||
while preventing a barrage of unnecessary requests to SourceKitten. | ||
|
||
To clear the cache manually, run `SwiftKitten: Clear Cache | ||
|
||
|
||
|
||
### frameworks | ||
|
||
SwiftKitten parses your file to find imported frameworks automatically. | ||
SwiftKitten requests and caches framework globals separately, since they | ||
are only needed once and requesting them via SourceKitten can take a while | ||
(20-30 seconds for Foundation). It is possbile to exclude specific | ||
frameworks from autocompletion results (See `exclude_framework_globals` in | ||
package settings). | ||
|
||
|
||
### settings | ||
|
||
See `SwiftKitten.sublime-settings` for more settings and information. | ||
Copy this file to `[Packages]/User` to customize the settings. | ||
|
||
Additionally, settings can be overridden in a sublime project file. | ||
|
||
|
||
|
Oops, something went wrong.