This pull request updates the python parser to the uctags version. The most interesting things are from the following commit messages from the pull request:
tm_ctags update: ``` The new parser generates 2 tags for import statements like
from A import B
For A tag of the 'i' kind is generated, for B, tag of the kind 'x' is generated. B includes A in its scope and when we omit generation of 'i', imports are printed in the sidebar with the full scope information like
Imports django.views.decorators.csrf.csrf_exempt django.views.decorators.csrf.csrf_exempt2 django.views.decorators.http.require_POST
When we generate 'i' and map it to something (I used tm_tag_externvar_t like for the imports themselves, there's nothing in the tag types we have that would be a good semantic candidate here), the result in the sidebar is
Imports django.views.decorators.csrf csrf_exempt csrf_exempt2 django.views.decorators.http require_POST
which is more readable IMO. ```
cython unit test updates: ``` I'm not sure if cython is officially supported by uctags and there's a slight problem where the new parser omits space between type and function argument name. E.g. it produces
method(self,inti)
instead of
method(self,int i) ```
Not sure if we should worry about the cython output much - we could also drop the cython unit tests if desired. You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3031
-- Commit Summary --
* Use uctags version of python * Update mappings in tm_parser.c * Update python unit tests * Update cython tests with a slightly buggy output
-- File Changes --
M ctags/Makefile.am (2) D ctags/parsers/geany_python.c (862) A ctags/parsers/python.c (1597) M src/tagmanager/tm_parser.c (4) M tests/ctags/cython_sample.pyx.tags (6) M tests/ctags/cython_sample2.pyx.tags (2) M tests/ctags/py_constructor_arglist.py.tags (33) M tests/ctags/simple.py.tags (6) M tests/ctags/tabindent.py.tags (2)
-- Patch Links --
https://github.com/geany/geany/pull/3031.patch https://github.com/geany/geany/pull/3031.diff