<p>Good to see it work, but coding large amounts of filetype specific functionality into Geany core is not the way to go.</p>
<p>Instead the code in core should query a plugin that plugin uses gocode to answer the question.  Then another plugin could support <a href="https://github.com/Microsoft/language-server-protocol">Language Server Protocol</a> and another could use <a href="http://clang.llvm.org/docs/Tooling.html#libclang">libclang</a>.</p>
<p>When the plugin is loaded it should register to be called instead of tagmangler for autocomplete.  Being able to register for other functions can then be added as separate PRs, eg formatting support, highlighting support (Scintilla willing), syntax error display etc etc</p>
<p>So the first thing is to specify the design of the interface to the plugin, and KISS.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany/pull/1457#issuecomment-291674393">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABDrJ1HsWZONCmOvyUY89iVuWruTq9bmks5rstYJgaJpZM4MzjZB">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ0RWGNwe5MBebDE0fIZTIkwDlvCvks5rstYJgaJpZM4MzjZB.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/geany/geany/pull/1457#issuecomment-291674393"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/geany/geany","title":"geany/geany","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/geany/geany"}},"updates":{"snippets":[{"icon":"PERSON","message":"@elextr in #1457: Good to see it work, but coding large amounts of filetype specific functionality into Geany core is not the way to go.\r\n\r\nInstead the code in core should query a plugin that plugin uses gocode to answer the question.  Then another plugin could support [Language Server Protocol](https://github.com/Microsoft/language-server-protocol) and another could use [libclang](http://clang.llvm.org/docs/Tooling.html#libclang).\r\n\r\nWhen the plugin is loaded it should register to be called instead of tagmangler for autocomplete.  Being able to register for other functions can then be added as separate PRs, eg formatting support, highlighting support (Scintilla willing), syntax error display etc etc\r\n\r\nSo the first thing is to specify the design of the interface to the plugin, and KISS."}],"action":{"name":"View Pull Request","url":"https://github.com/geany/geany/pull/1457#issuecomment-291674393"}}}</script>