gpt4 book ai didi

vb.net - 如何使用 Exuberant Ctags 为 VB.NET 文件创建标签?

转载 作者:行者123 更新时间:2023-12-02 07:06:59 26 4
gpt4 key购买 nike

我们在工作中使用 .NET,我们的项目有点混合,其中包含一些 VB 和 C#。 Exuberant Ctags 生成 C# 标签对我来说很好,遵循 these instructions 。但是,我还没有弄清楚如何让它为我的 VB.NET 代码生成标签。我发现唯一有帮助的文章是 this one 。但在 2003 年,它的排名才几年。我注意到的第一件事是这一行:

--langmap=vb:.bas.cls.ctl.frm.vbs

错了,而且也老了。我将其更改为:

--langmap=vb:.vb

这稍微改善了我的结果,但它似乎仍然没有产生预期的行为(例如,当我 :set tag=tags 并在函数调用或参数上执行 ^] 或 g] 时,它没有标签)。

这就是我的 ctags.cnf 文件的样子(并且我已经验证它正在被使用):

--langdef=vb
--langmap=vb:.vb
--regex-vb=/^(Public|Private|\b)[ \t]*Sub[ \t]+([a-zA-Z0-9_]+)/\2/s,subroutine/i
--regex-vb=/^(Public|Private|\b)[ \t]*Function[ \t]+([a-zA-Z0-9_]+)/\2/f,function/i
--regex-vb=/^(Public|Private)[ \t]+([a-zA-Z0-9_]+)[ \t]+As[ \t]+/\2/v,variable/i
--regex-vb=/^(Public|Private|\b)[ \t]*Const[ \t]+([a-zA-Z0-9_]+)[ \t]+(As|=)[ \t]+/\2/c,const/i
--regex-vb=/^(Public|\b)[ \t]*Property[ \t]*(Get|Let|Set)[ \t]+([a-zA-Z0-9_]+)/\3/n,name/i
--regex-vb=/^(Public|Private|\b)[ \t]*Enum[ \t]+([a-zA-Z0-9_]+)/\2/e,enum/i
--regex-vb=/^([a-zA-Z_]+):/\1/l,label/i
--recurse
--exclude="bin"
--exclude="obj"
--fields=+ianmzS
--extra=+fq
--vb-kinds=cn

知道我需要做什么才能获得适当的支持吗?

编辑:

这是我的标记文件的一个片段:

!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.8 //
Application.Designer.vb .\My Project\Application.Designer.vb 1;" kind:F line:1
Application.Designer.vb .\Nuts\My Project\Application.Designer.vb 1;" kind:F line:1
AssemblyInfo.vb .\My Project\AssemblyInfo.vb 1;" kind:F line:1
AssemblyInfo.vb .\Nuts\My Project\AssemblyInfo.vb 1;" kind:F line:1
AttachmentHandler.vb .\Utilities\AttachmentHandler.vb 1;" kind:F line:1

虽然我的 CS 代码库生成如下标签:

SomeModel   .\Client\Views\Models\Namespace\SomeModel.cs    /^    public class SomeModel$/;"    kind:c  line:12 namespace:Views.Models.SomeModel    access:public

最佳答案

除非您遵循零缩进编码约定,否则您的正则表达式将不起作用;)

尝试:

 // Note the extra [ \t]* right after ^
--regex-vb=/^[ \t]*(Public|Private|\b)[ \t]*Sub[ \t]+([a-zA-Z0-9_]+)/\2/s,subroutine/i

关于vb.net - 如何使用 Exuberant Ctags 为 VB.NET 文件创建标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11269184/

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