system:
mac osx catalina
Exuberant Ctags 5.8
call the following mymodule.f90
module mymodule
public
type :: thing1
real :: a
end type thing1
type, extends(thing1) :: thing2
real :: b
end type
end module
then run ctags -e mymodule.f90
and the resulting tags file is:
mymodule.f90,99
module mymodulemymodule1,0
type :: thing1thing15,27
reala6,44
real :: bb10,112
which notably is missing a definition for thing2. I have seen ctags skip over type definitions that look like:
type, abstract...
type, public...
whatever, it seems like the parser doesn't recognize type definitions other than type :: name
Is there a flag that enables this, or is ctags just too outdated now to use this? What is the solution here?
Universal-ctags developed at https://ctags.io can capture thing2 like:
$ cat mymodule.f90
module mymodule
public
type :: thing1
real :: a
end type thing1
type, extends(thing1) :: thing2
real :: b
end type
end module
$ u-ctags -o - -e mymodule.f90
mymodule.f90,144
module mymodulemymodule1,0
type :: thing1thing13,25
reala4,42
type, extends(thing1) :: thing2thing26,75
real :: bb7,109