<p></p>
<p dir="auto">I more or less pushed all the remaining ctags parsers in the recent PRs so here's a short summary of the remaining diffs:</p>
<ul dir="auto">
<li>geany_docbook.c: I think <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/masatake/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/masatake">@masatake</a> wanted to make this a proper XML parser in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="494231122" data-permission-text="Title is private" data-url="https://github.com/universal-ctags/ctags/issues/2198" data-hovercard-type="pull_request" data-hovercard-url="/universal-ctags/ctags/pull/2198/hovercard" href="https://github.com/universal-ctags/ctags/pull/2198">universal-ctags/ctags#2198</a> which isn't probably interesting for us as we'd need to introduce a dependency on some XML parser. In any case, the parser is simple and there should be no problem to maintain it by ourselves.</li>
<li>geany_matlab.c: Upstream uctags uses a regex-based parser which extracts some more tags, on the other hand regex parsers tend to be a bit slow so I'd stick with the current (again simple) parser for Geany (right now I don't feel very motivated to improve this parser so it can replace the regex-based parser).</li>
</ul>
<p dir="auto">geany_c.c (used as a parser for Java, C#, D, Vala) and geany_lcpp.c (preprocessor for geany_c.c):</p>
<ol dir="auto">
<li>I'd like to first simplify these by removing the C, C++, Vera parsers which we don't use so there's less code to compare. I already did this in uctags in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1197487297" data-permission-text="Title is private" data-url="https://github.com/universal-ctags/ctags/issues/3332" data-hovercard-type="pull_request" data-hovercard-url="/universal-ctags/ctags/pull/3332/hovercard" href="https://github.com/universal-ctags/ctags/pull/3332">universal-ctags/ctags#3332</a> and I'd do something similar in Geany.</li>
<li>Next, I would try to modify it so it uses <code>cpreprocessor.c</code> instead of the <code>geany_lcpp.c</code> preprocessor. The biggest difference is how function signatures are collected, I'd probably use the uctags implementation.</li>
<li>We should then decide what to do with the Vala parser which is present in Geany but not in uctags c.c. There's a PR in uctags <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="729070270" data-permission-text="Title is private" data-url="https://github.com/universal-ctags/ctags/issues/2677" data-hovercard-type="pull_request" data-hovercard-url="/universal-ctags/ctags/pull/2677/hovercard" href="https://github.com/universal-ctags/ctags/pull/2677">universal-ctags/ctags#2677</a> implementing this parser but I'm not sure how ready it is. Another alternative is to update universal ctags c.c with Vala. Yet another option is a hybrid approach where we could extract Vala from c.c in a similar way to (1), keep using it and eventually migrate to uctags Vala implementation when it is ready.</li>
<li>Finally, the rest will have to be synced piece by piece.</li>
</ol>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/geany/geany/issues/3170">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAIOWJ5ARVJTT4J226P245TVFG7GBANCNFSM5TRDPRHQ">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAIOWJ7SWX46ZB4D7GKKZHLVFG7GBA5CNFSM5TRDPRH2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4R67H6JQ.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><geany/geany/issues/3170</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/issues/3170",
"url": "https://github.com/geany/geany/issues/3170",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>