This patch enables local variable and function parameter reporting for Python, GDScript, PHP, and Typescript.
Because these are dynamic languages and Geany scope autocompletion relies on static type information, scope completion doesn't work for these languages. However, at least we get non-scope autocompletion for local variables and function parameters.
Local variables in GDScript were previously mapped to tm_tag_other_t and were displayed in the sidebar. We don't display these tags for C/C++ in the sidebar and they should also be mapped to tm_tag_local_var_t which is why there is a diff in unit tests removing these variables from the output.
The python parser generates a slightly different output when function parameter parsing is enabled (whitespace only change) which causes the change of the output of some python unit tests. You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3275
-- Commit Summary --
* Update python parser to the latest version from uctags * Enable local variable and parameter tag reporting for various languages
-- File Changes --
M ctags/parsers/python.c (258) M src/tagmanager/tm_parser.c (23) M tests/ctags/cython_sample.pyx.tags (4) M tests/ctags/gdscript-inner-class.gd.tags (20) M tests/ctags/gdscript-modifiers.gd.tags (16) M tests/ctags/gdscript-no-implicit-class.gd.tags (14) M tests/ctags/simple.py.tags (4)
-- Patch Links --
https://github.com/geany/geany/pull/3275.patch https://github.com/geany/geany/pull/3275.diff
@kugel- commented on this pull request.
So this basically just updates a few parser to latest universal-ctags and then enables parser features found their? Or did you add the code to python.c?
So this basically just updates a few parser to latest universal-ctags
Yes, the first patch updates the python ctags parser to the current uctags version (no changes by me, this is a verbatim copy).
and then enables parser features found their?
The second patch sets the mappings of languages that support local variables to `tm_tag_local_var_t`. The GDScript removal of tags from unit tests is caused by the fact that previously (by mistake) local variables were mapped to normal variables (`tm_tag_variable_t`).
LGB quick I
@kugel- approved this pull request.
Will merge this in about a week if nobody complains.
Merged #3275 into master.
github-comments@lists.geany.org