{"action":"created","issue":{"url":"https://api.github.com/repos/Valloric/ycmd/issues/180","labels_url":"https://api.github.com/repos/Valloric/ycmd/issues/180/labels{/name}","comments_url":"https://api.github.com/repos/Valloric/ycmd/issues/180/comments","events_url":"https://api.github.com/repos/Valloric/ycmd/issues/180/events","html_url":"https://github.com/Valloric/ycmd/pull/180","id":96439035,"number":180,"title":"POC Cross-TranslationUnit GoToDefinition support","user":{"login":"RedBeard0531","id":118456,"avatar_url":"https://avatars.githubusercontent.com/u/118456?v=3","gravatar_id":"","url":"https://api.github.com/users/RedBeard0531","html_url":"https://github.com/RedBeard0531","followers_url":"https://api.github.com/users/RedBeard0531/followers","following_url":"https://api.github.com/users/RedBeard0531/following{/other_user}","gists_url":"https://api.github.com/users/RedBeard0531/gists{/gist_id}","starred_url":"https://api.github.com/users/RedBeard0531/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RedBeard0531/subscriptions","organizations_url":"https://api.github.com/users/RedBeard0531/orgs","repos_url":"https://api.github.com/users/RedBeard0531/repos","events_url":"https://api.github.com/users/RedBeard0531/events{/privacy}","received_events_url":"https://api.github.com/users/RedBeard0531/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-07-21T23:30:37Z","updated_at":"2015-07-22T02:11:14Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Valloric/ycmd/pulls/180","html_url":"https://github.com/Valloric/ycmd/pull/180","diff_url":"https://github.com/Valloric/ycmd/pull/180.diff","patch_url":"https://github.com/Valloric/ycmd/pull/180.patch"},"body":"This is an initial POC of cross-TU support for GoToDefinition. It works by extracting the USRs (clang's Unified Symbol Resolution) for each definition in the file after parsing the TU. If GoToDefinition fails on the TU, it will query all TUs in the TUStore to see if they contain the definition.\r\n\r\nThere is currently no support for serializing this information. This means that it can only go to definitions in files that are currently open and have been parsed since the last restart of the server.\r\n\r\nThis is on top of and complements well with #178 and #179. In my use case, I often want to go to the actual definition, but I'd also like a way to get to the documentation if there is any.\r\n\r\nI am putting up a PR before writing tests to get initial feedback on if this is desired functionality and if you have a more preferred way of achieving it."},"comment":{"url":"https://api.github.com/repos/Valloric/ycmd/issues/comments/123534915","html_url":"https://github.com/Valloric/ycmd/pull/180#issuecomment-123534915","issue_url":"https://api.github.com/repos/Valloric/ycmd/issues/180","id":123534915,"user":{"login":"oblitum","id":1269815,"avatar_url":"https://avatars.githubusercontent.com/u/1269815?v=3","gravatar_id":"","url":"https://api.github.com/users/oblitum","html_url":"https://github.com/oblitum","followers_url":"https://api.github.com/users/oblitum/followers","following_url":"https://api.github.com/users/oblitum/following{/other_user}","gists_url":"https://api.github.com/users/oblitum/gists{/gist_id}","starred_url":"https://api.github.com/users/oblitum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oblitum/subscriptions","organizations_url":"https://api.github.com/users/oblitum/orgs","repos_url":"https://api.github.com/users/oblitum/repos","events_url":"https://api.github.com/users/oblitum/events{/privacy}","received_events_url":"https://api.github.com/users/oblitum/received_events","type":"User","site_admin":false},"created_at":"2015-07-22T02:11:14Z","updated_at":"2015-07-22T02:11:14Z","body":"Cool. I've researched something like this [quite some time ago](http://stackoverflow.com/q/13789814/1000282) but the speed prospects for per-TU traversing didn't make me happy at the time. Do you think it's speedy enough? To counter this effect I've thought of turning the TUStore into a cache so that last queried and/or most frequently accessed TUs stays at the top of the list."}}