<blockquote>
<p>So thinking about it, that means it still only handles named scopes (ie those that have parent tags), still not lexical scopes ie { to }?</p>
</blockquote>

<p>Yep, no lexical support as far as I know.</p>

<blockquote>
<p>If so it still seems a lot of code.</p>
</blockquote>

<p>The great majority of the added code is nothing useful for Geany (processing command-line parameters of ctags, support of different output file formats, etc.). The only useful thing which this patch brings is the mentioned cork thing and the ability to run nested parsers from within another parser. Adding this would be less than 1000 LOCs (rough estimate).</p>

<p>But the point of this pull request isn't to bring anything "useful" - the point is to make ctags (eventually) truly external dependency we don't have to care about. Every time something changes upstream now, we have to backport the patch manually and it's painful (e.g. <a href="https://github.com/geany/geany/commit/662765852fb2f5ca72de8087646ab8bd6d82c889" class="commit-link"><tt>6627658</tt></a> and various renames of functions used by parsers we have to backport if we want to keep parsers compatible). The development of ctags is quite active now and changes like that happen quite often.</p>

<p>This pull request is just the first step - it will have to be followed by:</p>

<ol>
<li>Syncing parsers.</li>
<li>If possible getting rid of Geany-specific code we still have.</li>
<li>Bringing the library support to ctags.</li>
<li>Refactoring ctags so only the necessary things compile for a library.</li>
</ol>

<p>Once (1) and (2) is done, (3) and (4) can be done in the ctags project and we'll only have to take over the changes. I don't want to do (4) now as it will be better to discuss with the ctags guys. Also the current API is rather provisional and will need some discussion how to do it right in ctags. Still this pull request helps to make it clear what we need in Geany from ctags and makes it possible to do (1).</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/1263#issuecomment-254869716">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABDrJ5ykzpK09qDMYolBLBh_XulIhTf4ks5q1kfQgaJpZM4KXvBh">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ1zE21OLwOfcJyNuscdMXFh0zAUwks5q1kfQgaJpZM4KXvBh.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/1263#issuecomment-254869716"></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 #1263: \u003e So thinking about it, that means it still only handles named scopes (ie those that have parent tags), still not lexical scopes ie { to }?\r\n\r\nYep, no lexical support as far as I know.\r\n\r\n\u003e  If so it still seems a lot of code.\r\n\r\nThe great majority of the added code is nothing useful for Geany (processing command-line parameters of ctags, support of different output file formats, etc.). The only useful thing which this patch brings is the mentioned cork thing and the ability to run nested parsers from within another parser. Adding this would be less than 1000 LOCs (rough estimate).\r\n\r\nBut the point of this pull request isn't to bring anything \"useful\" - the point is to make ctags (eventually) truly external dependency we don't have to care about. Every time something changes upstream now, we have to backport the patch manually and it's painful (e.g. https://github.com/geany/geany/commit/662765852fb2f5ca72de8087646ab8bd6d82c889 and various renames of functions used by parsers we have to backport if we want to keep parsers compatible). The development of ctags is quite active now and changes like that happen quite often.\r\n\r\nThis pull request is just the first step - it will have to be followed by:\r\n\r\n1. Syncing parsers.\r\n2. If possible getting rid of Geany-specific code we still have.\r\n3. Bringing the library support to ctags.\r\n4. Refactoring ctags so only the necessary things compile for a library.\r\n\r\nOnce (1) and (2) is done, (3) and (4) can be done in the ctags project and we'll only have to take over the changes. I don't want to do (4) now as it will be better to discuss with the ctags guys. Also the current API is rather provisional and will need some discussion how to do it right in ctags. Still this pull request helps to make it clear what we need in Geany from ctags and makes it possible to do (1)."}],"action":{"name":"View Pull Request","url":"https://github.com/geany/geany/pull/1263#issuecomment-254869716"}}}</script>