{"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":4,"created_at":"2015-07-21T23:30:37Z","updated_at":"2015-08-04T19:28:03Z","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/127728751","html_url":"https://github.com/Valloric/ycmd/pull/180#issuecomment-127728751","issue_url":"https://api.github.com/repos/Valloric/ycmd/issues/180","id":127728751,"user":{"login":"Valloric","id":919444,"avatar_url":"https://avatars.githubusercontent.com/u/919444?v=3","gravatar_id":"","url":"https://api.github.com/users/Valloric","html_url":"https://github.com/Valloric","followers_url":"https://api.github.com/users/Valloric/followers","following_url":"https://api.github.com/users/Valloric/following{/other_user}","gists_url":"https://api.github.com/users/Valloric/gists{/gist_id}","starred_url":"https://api.github.com/users/Valloric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Valloric/subscriptions","organizations_url":"https://api.github.com/users/Valloric/orgs","repos_url":"https://api.github.com/users/Valloric/repos","events_url":"https://api.github.com/users/Valloric/events{/privacy}","received_events_url":"https://api.github.com/users/Valloric/received_events","type":"User","site_admin":false},"created_at":"2015-08-04T19:28:03Z","updated_at":"2015-08-04T19:28:03Z","body":"Thanks for sending in a PR!\r\n\r\nI'm not sure this is a good idea. We'd still end up with GoTo working \"sometimes,\" except that the now it would also work if you have opened the TU with the definition in the same session, which doesn't sound like it would cover a lot of new cases... and all this with the new cost of a failed GoTo now taking much longer because it has to parse all TUs. In large codebases that have huge TUs, this would result in quite a bit of pain I think.\r\n\r\nI don't think this is a net win. :(\r\n\r\n@r4nt As a Clang dev, what do you think about this?"}}