<p>This is hopefully the last "big" patch set related to TM. In fact, despite the diff size, it's actually not that big - the diffs are mostly caused by moving stuff around.</p>

<p>There are no functional changes in this patch set - just cleanups.</p>

<p>Most of the patches concentrate on TM<-->ctags interaction and simplification of their interfaces.</p>

<p>The last patch is an API/ABI break affecting projectorganizer and geanyprj - probably not worth the break alone but if there are more patches requiring ABI break, this one could be added. Can remove it from this patch set and submit separately.</p>

<p>It would be nice to have it applied early-ish in the 1.28 cycle as I'd like to do some work on syncing with upstream universal-ctags which will depend on these patches.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/geany/geany/pull/957'>https://github.com/geany/geany/pull/957</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Remove the TagEntrySetArglistFunction hook</li>
  <li>Initialize ctags at a single place instead of four</li>
  <li>Improve ctags callback API</li>
  <li>Use G_BEGIN_DECLS/G_END_DECLS</li>
  <li>Remove unused tm_tagmanager.h</li>
  <li>Move code related to various tag file formats into tm_source_file.c</li>
  <li>Add an API-like ctags layer</li>
  <li>Use TMParserType instead of language name in tm_source_file_new()</li>
  <li>Clean up messy tm_workspace_create_global_tags()</li>
  <li>Remove some unused return values and unnecessary checks</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-0">src/document.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-1">tagmanager/ctags/entry.c</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-2">tagmanager/ctags/entry.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-3">tagmanager/ctags/parse.c</a>
    (9)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-4">tagmanager/ctags/parse.h</a>
    (7)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-5">tagmanager/ctags/python.c</a>
    (30)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-6">tagmanager/src/Makefile.am</a>
    (6)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-7">tagmanager/src/tm_ctags_wrappers.c</a>
    (113)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-8">tagmanager/src/tm_ctags_wrappers.h</a>
    (47)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-9">tagmanager/src/tm_source_file.c</a>
    (806)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-10">tagmanager/src/tm_source_file.h</a>
    (24)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-11">tagmanager/src/tm_tag.c</a>
    (559)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-12">tagmanager/src/tm_tag.h</a>
    (38)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-13">tagmanager/src/tm_tagmanager.h</a>
    (39)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-14">tagmanager/src/tm_workspace.c</a>
    (373)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-15">tagmanager/src/tm_workspace.h</a>
    (9)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/957/files#diff-16">wscript</a>
    (1)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/geany/geany/pull/957.patch'>https://github.com/geany/geany/pull/957.patch</a></li>
  <li><a href='https://github.com/geany/geany/pull/957.diff'>https://github.com/geany/geany/pull/957.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/geany/geany/pull/957">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJybq1duBl_UPmcyR6Krh-gChAtK4ks5psFezgaJpZM4Ht-Ad.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/957"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>