2017-04-12 63 views
0
namespace eval core { 
set b {} 
} 

proc core::edit_core {} { 
} 

proc test {} { 
set x 34 
} 

test 

edit_core 

按下CTRL +]当在测试中,然后引导到定义, 而在edit_core,它是没有找到cstags。的ctags不引导至用于命名空间方法TCL

+2

的[CTRL- \]不为TCL代码导航工作]可能的复制(http://stackoverflow.com/questions/11078605/ctrl-is-not-working-for-tcl-code-navigation ) – komar

+0

你的'ctags'命令行看起来像什么?如果您查看'tags'文件,'edit_core'行包含的是什么? –

+0

@PeterLewerin核心:: edit_core –

回答

0

最新的Universal-ctags(https://ctags.io)可以处理命名空间。

[[email protected]]~/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 

[[email protected]]~/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 
[[email protected]]~/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 

[[email protected]]~/var/ctags% ./ctags --list-kinds=Tcl 
./ctags --list-kinds=Tcl 
p procedures 
n namespaces 
[[email protected]]~/var/ctags% ./ctags --list-kinds=ITcl 
./ctags --list-kinds=ITcl 
c classes 
m methods