1 回答

TA贡献1851条经验 获得超3个赞
Universal-ctags ( https://ctags.io ) 是 Exuebrante-ctags 的非官方分支,可以提取预期的模式:
[yamato@slave]~% cat /tmp/foo.py
cat /tmp/foo.py
class FirstSubclass(
LongLineBaseClass, AnotherLongClassName,
MoreBaseClassWithVeryLongName
):
pass
class SecondSubclass(
LongLineBaseClass, AnotherLongClassName,
MoreBaseClassWithVeryLongName
):
pass
class OneLineClass(LongLineBaseClass):
pass
[yamato@slave]~% u-ctags -o - /tmp/foo.py
u-ctags -o - /tmp/foo.py
FirstSubclass /tmp/foo.py /^class FirstSubclass($/;" c
OneLineClass /tmp/foo.py /^class OneLineClass(LongLineBaseClass):$/;" c
SecondSubclass /tmp/foo.py /^class SecondSubclass($/;" c
此外,它可以填充继承字段:
[yamato@slave]~% u-ctags --fields=+i -o - /tmp/foo.py
u-ctags --fields=+i -o - /tmp/foo.py
FirstSubclass /tmp/foo.py /^class FirstSubclass($/;" c inherits:LongLineBaseClass, AnotherLongClassName, MoreBaseClassWithVeryLongName
OneLineClass /tmp/foo.py /^class OneLineClass(LongLineBaseClass):$/;" c inherits:LongLineBaseClass
SecondSubclass /tmp/foo.py /^class SecondSubclass($/;" c inherits:LongLineBaseClass, AnotherLongClassName, MoreBaseClassWithVeryLongName
添加回答
举报