{"push_id":798419098,"size":2,"distinct_size":0,"ref":"refs/heads/master","head":"2dc716a34ac632bf7b2019cfb2acb3b18a411497","before":"e6c409f82487904f761cc26eb2ec714c6191c6e1","commits":[{"sha":"34a167f6fcb9a1378c517c1491e49497970a9aa1","author":{"email":"de3e21482d297103c92e3a0cd1e3574c8553d0bf@gmail.com","name":"Ben Jackson"},"message":"Support GetDoc subcommand for Clang completer\n\nThe GetDoc subcommand returns detailed information (sometimes known as\nQuickInfo) for the identifier at a particular location.\n\nWe display:\n\n  <declaration of the identifier>\n  <brief>\n  Type: <canonical type>\n  Name: <display name>\n  ---\n\n  <Detailed information from the doxygen comment>\n\nClang actually has very rich support for parsing of doxygen comments. However,\nthis API is not strictly part of the \"libclang\" API - it is technically a\nseparate module. The core libclang module does include methods to get the raw\ncomment string (as typed in the buffer) and the \"brief\" as parsed by the full\ndocumentation parser.\n\nAnnoyingly, we have to get a fully parsed XML document out of the non-core API\njust to extract the declaration. There does not appear to be any other way to\nget this out of libclang.\n\nRegarding the detailed information, we actually use the raw comment text, rather\nthan the parsed infomation from the XML. This is because we don't want to write\na lot of complex code, and we also don't want to lose any actual data from the\ncomment. However, we do want to remove distracting indentation and comment\nmarkets. We jsut use some basic regular expressions and python's textwrap to\nremove the general syntax markers used on comments.","distinct":false,"url":"https://api.github.com/repos/Valloric/ycmd/commits/34a167f6fcb9a1378c517c1491e49497970a9aa1"},{"sha":"2dc716a34ac632bf7b2019cfb2acb3b18a411497","author":{"email":"5c2bd99229d434a2f7174ea3f8798d821bc7f9ae@barosl.com","name":"Homu"},"message":"Auto merge of #229 - puremourning:getdoc-clang, r=Valloric\n\nSupport GetDoc subcommand for Clang completer\n\nReferences \r\n====\r\n\r\nFeature request: https://github.com/Valloric/YouCompleteMe/issues/1653\r\nYCM change: https://github.com/Valloric/YouCompleteMe/pull/1694\r\n\r\nOverview\r\n====\r\n\r\nThe GetDoc subcommand returns detailed information (sometimes known as\r\nQuickInfo) for the identifier at a particular location.\r\n\r\nFor C-family languages, we display:\r\n\r\n```\r\n  <declaration of the identifier>\r\n  <brief>\r\n  Type: <canonical type>\r\n  Name: <display name>\r\n  ---\r\n  <Detailed information from the doxygen comment>\r\n```\r\n\r\nTechnical Information \r\n===\r\n\r\nClang actually has very rich support for parsing of doxygen comments. However,\r\nthis API is not strictly part of the \"libclang\" API - it is technically a\r\nseparate module. The core libclang module does include methods to get the raw\r\ncomment string (as typed in the buffer) and the \"brief\" as parsed by the full\r\ndocumentation parser.\r\n\r\nAnnoyingly, we have to get a fully parsed XML document out of the non-core API\r\njust to extract the declaration. There does not appear to be any other way to\r\nget this out of libclang.\r\n\r\nRegarding the detailed information, we actually use the raw comment text, rather\r\nthan the parsed infomation from the XML. This is because we don't want to write\r\na lot of complex code, and we also don't want to lose any actual data from the\r\ncomment. However, we do want to remove distracting indentation and comment\r\nmarkets. We jsut use some basic regular expressions and python's textwrap to\r\nremove the general syntax markers used on comments.\r\n\r\nAPI Changes\r\n====\r\n\r\nCompleter subcommands can now return 'detailed info' using `ycmd.responses.BuildDetailedInfoResponse`, as follows:\r\n\r\n```\r\n{\r\n   detailed_info: <multi-line string, with OS-specific line endings>\r\n}\r\n```","distinct":false,"url":"https://api.github.com/repos/Valloric/ycmd/commits/2dc716a34ac632bf7b2019cfb2acb3b18a411497"}]}