11# Swifty Swift Vim
22
3- Swifty Swift Vim is a semantic editor backend for Vim and YouCompleteMe.
3+ Swifty Swift Vim is a semantic editor backend swift tailored to the needs of
4+ text editors.
45
5- ## Usage
6+ It was originally designed to integrate Swift into [ YouCompleteMe ] ( https://github.com/Valloric/YouCompleteMe/ ) .
67
7- Install the pull request branch of YCMD into YouCompleteMe.
8+ ## YouCompleteMe Usage
9+
10+ Install the [ RFC branch of YCMD with Swift Supprt] ( https://github.com/Valloric/ycmd/pull/487 )
11+ into your YouCompleteMe installation.
812
913Typically, this means going into wherever you cloned YouCompleteMe and then:
1014
1115```
1216 mv third_party/ycmd third_party/ycmd-master
1317 git clone https://github.com/jerrymarino/ycmd.git
1418
15- # Checout the RFC branch
19+ # Checkout the RFC branch
1620 git checkout remotes/origin/jmarino_swift_prototype_squashed
1721 git submodule update --init --recursive
1822
1923 # Build with swift support
20- ./build.py
24+ # ( Also, keep clang and potentially debug symbols --debug-symbols )
25+ ./build.py --completers --swift-completer --clang-completer
2126```
2227
2328By default VIM does not support the ` swift ` filetype.
@@ -28,16 +33,16 @@ Cat this into your `.vimrc`
2833 autocmd BufNewFile,BufRead *.swift set filetype=swift
2934```
3035
31- Then, assert it's set to the correct value when a swift file is open.
36+ Then, assert it's set to the correct value when a ` swift ` file is open.
3237
3338```
3439 :set ft?
3540```
3641
37- ## Supported Features:
38-
39- - Semantic Completion
42+ ## Supported Features
4043
44+ - Code Completion
45+ - Semantic Diagnostics
4146
4247## Design
4348
@@ -69,7 +74,7 @@ distribution.
6974### Features
7075
7176It eventually supports: semantic completion, GoTo definition, diagnostics,
72- symbol useage , and documentation displaying. It should support compile command
77+ symbol usage , and documentation displaying. It should support compile command
7378configuration via flags and a JSON compilation database to support complex
7479projects, similar to clang's JSON compilation database.
7580
@@ -80,7 +85,7 @@ designed to work with YouCompleteMe YCMD. It uses HTTP as a protocol to
8085integrate with YouCompleteMe:
8186[ https://val.markovic.io/articles/youcompleteme-as-a-server ] ( YouCompleteMe )
8287
83- The frontend is build on Beast HTTP and Boost ASIO
88+ The frontend is build on [ Beast] ( https://github.com/vinniefalco/Beast ) HTTP and Boost ASIO
8489
8590
8691## Development
@@ -91,6 +96,33 @@ In the root directory, you can setup the repository with 1 line
9196 ./bootstrap
9297```
9398
94- I log random musings about the trials and tribulations of developing and using
95- this in ` notes.txt ` .
99+ I log random musings about developing and using this in ` notes.txt ` .
100+
101+ This project is still in early phases, and development happens sporadically.
102+
103+ ** Contributions welcome**
104+
105+ ### Ideas for starter projects
106+ - Write documentation that explains how to use this
107+ - Improve build system and dependency integration
108+ - Design an end to end integration testing system
109+ - Integrate GoogleTest for CPP units
110+ - Get ` GoToDefinition ` working end to end
111+ - Implement a semantic search engine
112+ - Add the ability to bootstrap a project from an Xcode project
113+
114+ ### Ideas for YCM starter projects
115+ - Integrate Diagnostic support with YouCompleteMe
116+ - Add support for swift ` .ycm_extra_conf ` s in YCMD.
117+
118+ ## Acknowledgements
119+
120+ The HTTP server stands on the shoulders of [ Beast] ( https://github.com/vinniefalco/Beast ) (s).
121+ Many thanks to @vinniefalco for Beast and his guidance for getting this up and
122+ running.
123+
124+ Thank you Apple for opening up the [ Swift] ( https://github.com/apple/swift/ ) compiler and
125+ IDE facilities. This project would not be possible without this.
126+
127+ Thanks to @Valloric and the YCMD/YouCompleteMe project.
96128
0 commit comments