namespace eval core {
set b {}
}
proc core::edit_core {} {
}
proc test {} {
set x 34
}
test
edit_core
在测试时按CTRL +],然后指向定义, 在edit_core上,它没有找到cstags。
答案 0 :(得分:0)
最新的Universal-ctags(https://ctags.io)可以处理命名空间。
[jet@localhost]~/var/ctags% cat foo.tcl
cat foo.tcl
namespace eval core {
set b {}
}
proc core::edit_core {} {
}
proc test {} {
set x 34
}
test
edit_core
[jet@localhost]~/var/ctags% ./ctags -o - --fields=+K foo.tcl
./ctags -o - --fields=+K foo.tcl
core foo.tcl /^namespace eval core {$/;" namespace
edit_core foo.tcl /^proc core::edit_core {} {$/;" procedure namespace:core::edit_core
test foo.tcl /^proc test {} {$/;" procedure
[jet@localhost]~/var/ctags% ./ctags -o - --fields=+K --extras=+q foo.tcl
./ctags -o - --fields=+K --extras=+q foo.tcl
core foo.tcl /^namespace eval core {$/;" namespace
core::edit_core::edit_core foo.tcl /^proc core::edit_core {} {$/;" procedure
edit_core foo.tcl /^proc core::edit_core {} {$/;" procedure namespace:core::edit_core
test foo.tcl /^proc test {} {$/;" procedure
[jet@localhost]~/var/ctags% ./ctags --list-kinds=Tcl
./ctags --list-kinds=Tcl
p procedures
n namespaces
[jet@localhost]~/var/ctags% ./ctags --list-kinds=ITcl
./ctags --list-kinds=ITcl
c classes
m methods