<p><b>@b4n</b> requested changes on this pull request.</p>

<p>Looks pretty good but</p>
<ul>
<li>ABC parser might be useful, as mentioned in the previous comment;</li>
<li>Some parsers removed because they are using RE which doesn't work anymore might still be useful, and we should find a solution for this…</li>
</ul><hr>

<p>In <a href="https://github.com/geany/geany/pull/2018#discussion_r247361488">ctags/main/options.c</a>:</p>
<pre style='color:#555'>> @@ -3484,3 +3484,8 @@ extern void verbose (const char *const format, ...)
 {
 }
 /* GEANY DIFF END */
+
+extern bool canUseLineNumberAsLocator (void)
+{
+       return (Option.locate != EX_PATTERN);
+}
</pre>
<p>missing newline</p>

<hr>

<p>In <a href="https://github.com/geany/geany/pull/2018#discussion_r247361679">ctags/main/parse.c</a>:</p>
<pre style='color:#555'>>  {
-       const kindOption *kindOpt;
-
-       if (hasRegexKind (language, kind))
-               return isRegexKindEnabled (language, kind);
-       else if (hasXcmdKind (language, kind))
-               return isXcmdKindEnabled (language, kind);
</pre>
<p>Willn't this be still relevant for RE if we still keep it in the end?</p>

<hr>

<p>In <a href="https://github.com/geany/geany/pull/2018#discussion_r247361869">ctags/main/parse.c</a>:</p>
<pre style='color:#555'>> @@ -2742,8 +2793,12 @@ extern void anonGenerate (vString *buffer, const char *prefix, int kind)
 
        vStringCopyS(buffer, prefix);
 
-       unsigned int uHash = anonHash((const unsigned char *)getInputFileName());
-       sprintf(szNum,"%08x%02x%02x",uHash,lang -> anonumousIdentiferId, kind);
+/* GEANY DIFF */
+/*     unsigned int uHash = anonHash((const unsigned char *)getInputFileName());
+       sprintf(szNum,"%08x%02x%02x",uHash,lang -> anonumousIdentiferId, kind); */
+       sprintf(szNum,"%u", lang -> anonumousIdentiferId);
</pre>
<p>Why did you change this?  The upstream anon ID logic seems more stable and unique, and I don't really see a problem with it?</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/2018#pullrequestreview-191989155">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABDrJyWzrbk4ACTarfMEHw5iI829sdsgks5vC6DlgaJpZM4ZXOnd">mute the thread</a>.<img src="https://github.com/notifications/beacon/ABDrJxECP_wxjFYRO_VPH_EfG_ud-V9pks5vC6DlgaJpZM4ZXOnd.gif" height="1" width="1" alt="" /></p>
<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://github.githubassets.com/images/email/message_cards/header.png","avatar_image_url":"https://github.githubassets.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/geany/geany"}},"updates":{"snippets":[{"icon":"PERSON","message":"@b4n requested changes on #2018"}],"action":{"name":"View Pull Request","url":"https://github.com/geany/geany/pull/2018#pullrequestreview-191989155"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/pull/2018#pullrequestreview-191989155",
"url": "https://github.com/geany/geany/pull/2018#pullrequestreview-191989155",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>