gpt4 book ai didi

erlang - 让 ctags 在 Erlang 代码的标签文件中包含模块限定符

转载 作者:行者123 更新时间:2023-12-04 18:16:56 24 4
gpt4 key购买 nike

我正在使用 Exuberant ctags 来索引 Erlang 文件。

“tags”文件包含函数,但它们没有模块限定符;所以
我无法搜索“module:function”,只能搜索“function”,这可能会给出几个
结果。

你知道让 ctags 在标签文件中包含模块限定符的方法吗?

谢谢。

最佳答案

就像 lht 写的那样,Exuberant Ctags 5.8 已经将函数的模块存储在标签文件中。至少在最新版本的 Vim (7.4) 中可以访问此信息。然后可以使用自定义“标签”功能查找“模块:功能”,例如:

function! ErlangTag()
let isk_orig = &isk
set isk+=:
let keyword = expand('<cword>')
let &isk = isk_orig
let parts = split(keyword, ':')
if len(parts) == 1
execute 'tag' parts[0]
elseif len(parts) == 2
let [mod, fun] = parts
let i = 1
let fun_taglist = taglist('^' . fun . '$')
for item in fun_taglist
if item.kind == 'f' && item.module == mod
silent execute i . 'tag' fnameescape(item.name)
break
endif
let i += 1
endfor
endif
endfunction

nnoremap <buffer> <c-]> :call ErlangTag()<cr>

关于erlang - 让 ctags 在 Erlang 代码的标签文件中包含模块限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1471330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com