ctags 不标记 fortran 自定义类型的复杂类型语句
ctags doesn't mark complex type statements for fortran custom types
system:
mac osx catalina
Exuberant Ctags 5.8
调用以下mymodule.f90
module mymodule
public
type :: thing1
real :: a
end type thing1
type, extends(thing1) :: thing2
real :: b
end type
end module
然后 运行 ctags -e mymodule.f90
生成的标签文件是:
mymodule.f90,99
module mymodulemymodule1,0
type :: thing1thing15,27
reala6,44
real :: bb10,112
其中明显缺少 thing2 的定义。我已经看到 ctags 跳过看起来像这样的类型定义:
type, abstract...
type, public...
无论如何,解析器似乎无法识别 type :: name
以外的类型定义
是否有启用此功能的标志,或者 ctags 现在太过时了,无法使用此功能?这里的解决方案是什么?
在 https://ctags.io 开发的 universal-ctags 可以捕获 thing2,例如:
$ 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
system:
mac osx catalina
Exuberant Ctags 5.8
调用以下mymodule.f90
module mymodule
public
type :: thing1
real :: a
end type thing1
type, extends(thing1) :: thing2
real :: b
end type
end module
然后 运行 ctags -e mymodule.f90
生成的标签文件是:
mymodule.f90,99
module mymodulemymodule1,0
type :: thing1thing15,27
reala6,44
real :: bb10,112
其中明显缺少 thing2 的定义。我已经看到 ctags 跳过看起来像这样的类型定义:
type, abstract...
type, public...
无论如何,解析器似乎无法识别 type :: name
是否有启用此功能的标志,或者 ctags 现在太过时了,无法使用此功能?这里的解决方案是什么?
在 https://ctags.io 开发的 universal-ctags 可以捕获 thing2,例如:
$ 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