It would be nice for ctags to support type-bound procedures (an essential means of OOP in Fortran) introduced in Fortran 2003.
For example, the output for
module m
type :: t
integer :: i
contains
procedure :: tf => f
procedure :: s
end type
contains
function f(this)
class(t) :: this
integer :: f
end
subroutine s(this)
class(t) :: this
end
end
should be something like:
f typebound.f90 /^ fu/;" f module:m
i typebound.f90 /^ in/;" k type:t
tf typebound.f90 /^ proc/;" k type:t
s typebound.f90 /^ procedure :: s$/;" k type:t
m typebound.f90 /^ mo/;" m
s typebound.f90 /^ su/;" s module:m
t typebound.f90 /^ ty/;" t module:m
See Fortran 2008: 4.5.2 Derived-type definition
R425 derived-type-def
4.5.5 Type-bound procedures
R445 type-bound-procedure-part
Example type-bound procedures