The test.vhd file is more than 8000 LOCs, it seems to be multiple concatenated VHDL sources and because of the large amount of tags, it's hard to see the changes.
The new parser supports scope reporting so update tm_parser_has_full_scope(). You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3158
-- Commit Summary --
* Add "el" as "Lisp" filetyp extension * Added semicolon * Add VHDL unit tests from uctags and remove the giant test.vhd * Use the upstream VHDL parser
-- File Changes --
M ctags/Makefile.am (2) D ctags/parsers/geany_vhdl.c (289) A ctags/parsers/vhdl.c (1083) M data/filetype_extensions.conf (2) M meson.build (2) M src/tagmanager/tm_parser.c (36) M tests/ctags/Makefile.am (6) M tests/ctags/bug2374109.vhd.tags (2) D tests/ctags/test.vhd (8174) D tests/ctags/test.vhd.tags (358) A tests/ctags/vhdl-component.vhd (54) A tests/ctags/vhdl-component.vhd.tags (9) A tests/ctags/vhdl-local.vhd (203) A tests/ctags/vhdl-local.vhd.tags (34) A tests/ctags/vhdl-port.vhd (5) A tests/ctags/vhdl-port.vhd.tags (7) A tests/ctags/vhdl-process.vhd (51) A tests/ctags/vhdl-process.vhd.tags (13) A tests/ctags/vhdl-type.vhd (325) A tests/ctags/vhdl-type.vhd.tags (121) M tests/meson.build (6)
-- Patch Links --
https://github.com/geany/geany/pull/3158.patch https://github.com/geany/geany/pull/3158.diff
I didn't look at the upstream parser and I don't really want to. I trust you that it's better (or at least on par) than our existing parser.
Do you think the new test files have about the same coverage or do we lose anything?
I didn't look at the upstream parser and I don't really want to. I trust you that it's better (or at least on par) than our existing parser.
This is a token-based parser unlike the previous readline-based parser (similarly to the TCL, Latex) which in general should be better and the development should go towards it instead of maintaining the previous parser. That of course doesn't mean that the previous parser didn't parse something better by accident but at least for the unit tests it seems to be the same (or better).
From the remaining parsers, I upstreamed all the Fortran changes we had (and the upstream parser had some improvements of its own) and I wrote the Markdown parser (based on the Asciidoc parser we had) because the previous parser was quite bad.
Do you think the new test files have about the same coverage or do we lose anything?
4 kinds seem to be really missing. I think I'll write some script checking if our parsers cover all the ctags kinds because it's easy to miss some tags.
4 kinds seem to be really missing. I think I'll write some script checking if our parsers cover all the ctags kinds because it's easy to miss some tags.
By the way this isn't because the previous unit test covered them but because there are some different kinds reported in the new parser.
@techee pushed 1 commit.
5f6362e45c42432d6242330629f465dbdec96fa3 fixup! Use the upstream VHDL parser
I created #3182 with a script checking whether we really generate all mapped kinds with our unit tests and updated all the currently open 'ctags parser' pull requests so they do generate all the tags.
There are some more missing kinds for other languages and I'll create PR after all the pending 'ctags parser' PRs are merged updating their unit tests too.
Tests pass, symbols show, LGTM
Merged #3158 into master.
github-comments@lists.geany.org