<blockquote>
<p>I agree, but I don't think TM is the right API at present for this purpose. I'm just worried we're boxing ourselves in a corner if we expose a lot of the API and then need to make massive sweeping changes to it in order to accommodate useful APIs for plugins to provide these kinds of features.</p>
</blockquote>

<p>IMO it's OK to break API if it doesn't happen too often and if there's a good reason for it so this wouldn't worry me much. </p>

<p>I'm just afraid that we won't be able to find a common way to represent both ctags symbols (simple list), clang symbols (tree I guess) or whatever else may appear for any other language. Moreover I guess clang already provides some TM-like API you can use to perform queries so any functionality TM provides would be mostly redundant.</p>

<p>I think it will be necessary to keep them separate and provide e.g. some callbacks plugins can use to override autocompletion or calltips, provide symbols for the sidebar (some common tree-like representation would be necessary here but it shouldn't be too hard to find something) etc. It wouldn't actually be necessary to disable TM and ctags completely - they could still parse the files, you just wouldn't see their tags in the UI.</p>

<p>If it's like this you don't have to worry about what happens in TM - it would be just a parallel system that parses symbols independent of your own.</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/1187#issuecomment-242804644">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABDrJ8lMmGpgHzAl5qEDFPEl5MaFkOqEks5qjyfMgaJpZM4JqVBL">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ03069MSmrVH5kqwFPa0VMscyFXmks5qjyfMgaJpZM4JqVBL.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/1187#issuecomment-242804644"></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":"@techee in #1187: \u003e I agree, but I don't think TM is the right API at present for this purpose. I'm just worried we're boxing ourselves in a corner if we expose a lot of the API and then need to make massive sweeping changes to it in order to accommodate useful APIs for plugins to provide these kinds of features.\r\n\r\nIMO it's OK to break API if it doesn't happen too often and if there's a good reason for it so this wouldn't worry me much. \r\n\r\nI'm just afraid that we won't be able to find a common way to represent both ctags symbols (simple list), clang symbols (tree I guess) or whatever else may appear for any other language. Moreover I guess clang already provides some TM-like API you can use to perform queries so any functionality TM provides would be mostly redundant.\r\n\r\nI think it will be necessary to keep them separate and provide e.g. some callbacks plugins can use to override autocompletion or calltips, provide symbols for the sidebar (some common tree-like representation would be necessary here but it shouldn't be too hard to find something) etc. It wouldn't actually be necessary to disable TM and ctags completely - they could still parse the files, you just wouldn't see their tags in the UI.\r\n\r\nIf it's like this you don't have to worry about what happens in TM - it would be just a parallel system that parses symbols independent of your own."}],"action":{"name":"View Pull Request","url":"https://github.com/geany/geany/pull/1187#issuecomment-242804644"}}}</script>