{"action":"created","issue":{"url":"https://api.github.com/repos/Valloric/ycmd/issues/268","labels_url":"https://api.github.com/repos/Valloric/ycmd/issues/268/labels{/name}","comments_url":"https://api.github.com/repos/Valloric/ycmd/issues/268/comments","events_url":"https://api.github.com/repos/Valloric/ycmd/issues/268/events","html_url":"https://github.com/Valloric/ycmd/pull/268","id":121153985,"number":268,"title":"[WIP] Add support for the Rust programming language","user":{"login":"jwilm","id":4285147,"avatar_url":"https://avatars.githubusercontent.com/u/4285147?v=3","gravatar_id":"","url":"https://api.github.com/users/jwilm","html_url":"https://github.com/jwilm","followers_url":"https://api.github.com/users/jwilm/followers","following_url":"https://api.github.com/users/jwilm/following{/other_user}","gists_url":"https://api.github.com/users/jwilm/gists{/gist_id}","starred_url":"https://api.github.com/users/jwilm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwilm/subscriptions","organizations_url":"https://api.github.com/users/jwilm/orgs","repos_url":"https://api.github.com/users/jwilm/repos","events_url":"https://api.github.com/users/jwilm/events{/privacy}","received_events_url":"https://api.github.com/users/jwilm/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":93,"created_at":"2015-12-09T03:53:50Z","updated_at":"2016-01-04T17:22:45Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Valloric/ycmd/pulls/268","html_url":"https://github.com/Valloric/ycmd/pull/268","diff_url":"https://github.com/Valloric/ycmd/pull/268.diff","patch_url":"https://github.com/Valloric/ycmd/pull/268.patch"},"body":"[racerd][] and the ycmd completer wrapper for racerd are finally ready for some peer review and testing. There are some blocking issues that need to get resolved before we can launch; these are enumerated later.\r\n\r\n### Demonstration\r\n\r\nThis gif shows semantic completion support (module paths and object members) and GoTo jumping (starting with BinaryHeap and further into the standard library). GoTo, GoToDefinition, and GoToDeclaration are all equivalent at this time.\r\n\r\n![racerd_ycm](https://cloud.githubusercontent.com/assets/4285147/11676180/e924255e-9de4-11e5-9b32-5eda431f79a3.gif)\r\n\r\n### Building ycmd with rust support\r\n\r\n1. Install [multirust][] if you don't already have it.\r\n2. Add this branch to your local ycmd installation. For example,\r\n\r\n    ```\r\n    cd $YCMD_PATH\r\n    git remote add jwilm https://github.com/jwilm/ycmd.git\r\n    git fetch jwilm\r\n    git checkout rust-support\r\n    ```\r\n\r\n3. Run the ycmd build.py script with an additional argument. If you only care about rust support, the build command might look like this.\r\n\r\n    ```\r\n    ./build.py --racerd-completer\r\n    ```\r\n\r\n### Outstanding Issues\r\n\r\n- [x] Racerd `::racer::core::Session` usage leaks memory. Need to patch racer + racerd to support a mutable, long-lived file cache. Until then, the FileCache's Arena grows indefinitely (can be witnessed by watching racerd's memory usage).\r\n- [x] Add tests for the rust completer in ycmd\r\n- [x] racerd HMAC support\r\n- [x] RustCompleter utilizes racerd hmac\r\n- [x] Support specifying rust source path as a ycm option (eg. via .vimrc for vim)\r\n- [x] Remove `multirust` dependency from _build.py_\r\n- [x] Tests pass on appveyor\r\n- [x] Add user option for overriding `racerd` path\r\n- [x] Add logging for racerd output\r\n- [x] Add synchronization for `self._racerd_phandle` (and friends) in RustCompleter\r\n- [x] Update racerd to handle `PoisonError` (jwilm/racerd#9)\r\n- [x] Eliminate OpenSSL dependencies (windows support)\r\n- [x] Rebase and include latest racerd\r\n\r\n[racerd]: https://github.com/jwilm/racerd\r\n[multirust]: https://github.com/brson/multirust\r\n\r\n<!-- Reviewable:start -->\r\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/valloric/ycmd/268)\r\n<!-- Reviewable:end -->"},"comment":{"url":"https://api.github.com/repos/Valloric/ycmd/issues/comments/168741962","html_url":"https://github.com/Valloric/ycmd/pull/268#issuecomment-168741962","issue_url":"https://api.github.com/repos/Valloric/ycmd/issues/268","id":168741962,"user":{"login":"micbou","id":10026824,"avatar_url":"https://avatars.githubusercontent.com/u/10026824?v=3","gravatar_id":"","url":"https://api.github.com/users/micbou","html_url":"https://github.com/micbou","followers_url":"https://api.github.com/users/micbou/followers","following_url":"https://api.github.com/users/micbou/following{/other_user}","gists_url":"https://api.github.com/users/micbou/gists{/gist_id}","starred_url":"https://api.github.com/users/micbou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/micbou/subscriptions","organizations_url":"https://api.github.com/users/micbou/orgs","repos_url":"https://api.github.com/users/micbou/repos","events_url":"https://api.github.com/users/micbou/events{/privacy}","received_events_url":"https://api.github.com/users/micbou/received_events","type":"User","site_admin":false},"created_at":"2016-01-04T17:22:44Z","updated_at":"2016-01-04T17:22:44Z","body":"<img class=\"emoji\" title=\":lgtm:\" alt=\":lgtm:\" align=\"absmiddle\" src=\"https://reviewable.io/lgtm.png\" height=\"20\" width=\"61\"/>\n\n---\n\nReviewed 2 of 2 files at r24.\nReview status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.\n\n---\n\n\n\n*Comments from the [review on Reviewable.io](https://reviewable.io:443/reviews/valloric/ycmd/268#-:-K7CcHOsGlEcPGZyGJfR:1417088721)*\n<!-- Sent from Reviewable.io -->\n"}}