<p dir="auto">The TCL parser is split into three parts:</p>
<p dir="auto">tcl - for parsing pure tcl code<br>
tcloo - for parsing tcloo OO extension of tcl<br>
itcl - for parsing itcl OO extension of tcl</p>
<p dir="auto">TCLOO and ITCL parsers run the TCL parser as a subparser but it isn't<br>
possible to combine all three parsers at the same time. Since TCLOO<br>
is the "modern" (but 10 years old) OO extension, it seems to be a better<br>
choice for Geany (if needed, a new filetype could be introduced for<br>
ITCL).</p>
<p dir="auto">Since it's run as a subparser, we need to introduce also a subparser<br>
tag type mapping for TCL (types are mapped to the same values here<br>
because they don't conflict with the TCLOO types).</p>
<p dir="auto">Also, the new parser reports full scope information so take care of that.<br>
In addition, scope by the TCL parser is prefixed by :: which we need<br>
to strip because the TM doesn't expect scope in this format.</p>
<p dir="auto">Update the unit test based on several uctags unit tests to cover the<br>
tags we generate with this parser.</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/3157'>https://github.com/geany/geany/pull/3157</a></p>

<h4>Commit Summary</h4>
<ul>
  <li><a href="https://github.com/geany/geany/pull/3157/commits/ef316b41573dd88c390efb586ace4a2110a07809" class="commit-link">ef316b4</a>  Use the upstream TCL parser</li>
</ul>

<h4 style="display: inline-block">File Changes </h4> <p style="display: inline-block">(<a href="https://github.com/geany/geany/pull/3157/files">12 files</a>)</p>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-e0ce68205f4ca660762ddbc1f13f556330aea31c7de950df4da1d4ce6f95e6d6">ctags/Makefile.am</a>
    (4)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-7ddaecef8b2acb221a18f5427e3552e5ee13b1877a31b54ad64be6174faab386">ctags/parsers/geany_tcl.c</a>
    (145)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-f50356a3a970c0ff638ba6f35a32e7f722dcc3b16316ce3ea3d672002f253915">ctags/parsers/tcl.c</a>
    (716)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-123748adddddf22813da60d472437baf3e854a67b8b5a846d5ed3ca73e658a78">ctags/parsers/tcl.h</a>
    (51)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-1ddac0e633cd2c412e8ea24f768a3e5276c7ba094b2b9e218a3dc82b08b6139b">ctags/parsers/tcloo.c</a>
    (201)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-30d8f6be6320feeacf686be94f48c70869b52630e01ea625f0f15adc0d57c3e4">meson.build</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-625af2608f940115f181bcc555b9109657624f03d7e5727afef3baad39e3b836">src/filetypes.c</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-52c3ba1a920ce03ae524e393cf4d0ff582b13d9eafef29393f9841c19adf31f8">src/tagmanager/tm_parser.c</a>
    (31)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-bf5ef327799b72933ceecfaa934a3b90ba5e983577974d2dc3a283fc4f6e8d60">src/tagmanager/tm_parser.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-86e706691d0515585732f8d260a35b118548d67d2ecbc65d866c0daa28f75d7b">src/tagmanager/tm_parsers.h</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-7d9b584f779ce1c1e65ec037a00e3582e7400684c53b000cfaeba2a43513e358">tests/ctags/simple.tcl</a>
    (59)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3157/files#diff-e0e71e092588ee0eede8befe977acf92ec4648088a16fef892987e7a9786f4fa">tests/ctags/simple.tcl.tags</a>
    (19)
  </li>
</ul>

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

<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/pull/3157">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAIOWJ24PIPN4J4EFVN3XADVEW5AFANCNFSM5TIENY3Q">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAIOWJYBUTGH3BQ6V2SQUADVEW5AFA5CNFSM5TIENY32YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4R5IRVPA.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/pull/3157</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/pull/3157",
"url": "https://github.com/geany/geany/pull/3157",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>