From 07958b2852b9010ef5fa14ffc392149b5fbf87db Mon Sep 17 00:00:00 2001 From: AraGimLeg Date: Fri, 16 Jun 2023 00:35:59 +0200 Subject: [PATCH 1/2] Basic ctags support for vbnet --- ctagsdotd/vbnet.ctags | 12 ++++++++++++ language-mapping.go | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 ctagsdotd/vbnet.ctags diff --git a/ctagsdotd/vbnet.ctags b/ctagsdotd/vbnet.ctags new file mode 100644 index 0000000..17a83eb --- /dev/null +++ b/ctagsdotd/vbnet.ctags @@ -0,0 +1,12 @@ +# See additional-language.ctags for maintaining this file +--langdef=vbnet +--langmap=vbnet:.vb +--regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Overloads|Overrides|Overridable|NotOverridable|MustOverride|Shared|Shadows|Async|Iterator)\s+)*\s*(?:Function|Sub)\s+([A-Z_0-9\[\]]*)\(.*?\)\s*(?:As\s+[\w.]+)?/\1/m,method/ +--regex-vbnet=/^(?i)\s*(?:(?:Default|Public|Private|Protected|Friend|Overloads|Overrides|Overridable|NotOverridable|MustOverride|Shared|Shadows|WriteOnly|ReadOnly|Iterator)\s+)*\s*(?:Property)\s+([A-Z_0-9\[\]]*)\s+As\s+/\1/p,property/ +--regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shared|Shadows|Custom)\s+)*\s*(?:Event)\s+([A-Z_0-9\[\]]*)/\1/e,event/ +--regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shadows|MustInherit|NotInheritable|Partial)\s+)*\s*(?:Class)\s+([A-Z_0-9\[\]]*)/\1/c,class/ +--regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shadows)\s+)*\s*(?:Interface)\s+([A-Z_0-9\[\]]*)/\1/i,interface/ +--regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shadows|Partial)\s+)*\s*(?:Structure)\s+([A-Z_0-9\[\]]*)/\1/s,struct/ +--regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shadows)\s+)*\s*(?:Enum)\s+([A-Z_0-9\[\]]*)/\1/e,enum/ +--regex-vbnet=/^(?i)\s*(?:(?:Public|Friend)\s+)*\s*(?:Module)\s+([A-Z_0-9\[\]]*)/\1/c,class/ +--regex-vbnet=/^(?i)\s*(?:(?:Public|Overloads|Shared|Shadows|Widening|Narrowing)\s+)*\s*(?:Operator)\s+([\+\-\*\/\\=<>a-z]+)/\1/m,method/ diff --git a/language-mapping.go b/language-mapping.go index 8d6d8e0..ae251d7 100644 --- a/language-mapping.go +++ b/language-mapping.go @@ -9,7 +9,7 @@ import ( "strings" ) -var SupportedLanguages = [...]string{"Basic", "C", "C#", "C++", "Clojure", "Cobol", "CSS", "CUDA", "D", "Elixir", "elm", "Erlang", "Go", "GraphQL", "Groovy", "haskell", "Java", "JavaScript", "Jsonnet", "kotlin", "Lisp", "Lua", "MatLab", "ObjectiveC", "OCaml", "Pascal", "Perl", "Perl6", "PHP", "Powershell", "Protobuf", "Python", "R", "Ruby", "Rust", "scala", "Scheme", "Sh", "swift", "SystemVerilog", "Tcl", "Thrift", "typescript", "tsx", "Verilog", "VHDL", "Vim"} +var SupportedLanguages = [...]string{"Basic", "C", "C#", "C++", "Clojure", "Cobol", "CSS", "CUDA", "D", "Elixir", "elm", "Erlang", "Go", "GraphQL", "Groovy", "haskell", "Java", "JavaScript", "Jsonnet", "kotlin", "Lisp", "Lua", "MatLab", "ObjectiveC", "OCaml", "Pascal", "Perl", "Perl6", "PHP", "Powershell", "Protobuf", "Python", "R", "Ruby", "Rust", "scala", "Scheme", "Sh", "swift", "SystemVerilog", "Tcl", "Thrift", "typescript", "tsx", "vbnet", "Verilog", "VHDL", "Vim"} func ListLanguageMappings(ctx context.Context, bin string) (map[string][]string, error) { if bin == "" { From 7d62afc8e75a96faabf1355c92b703fd6aaa9de2 Mon Sep 17 00:00:00 2001 From: AraGimLeg Date: Fri, 22 Dec 2023 14:14:25 +0100 Subject: [PATCH 2/2] Address comments --- ctagsdotd/vbnet.ctags | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ctagsdotd/vbnet.ctags b/ctagsdotd/vbnet.ctags index 17a83eb..19391d1 100644 --- a/ctagsdotd/vbnet.ctags +++ b/ctagsdotd/vbnet.ctags @@ -1,12 +1,12 @@ -# See additional-language.ctags for maintaining this file +# See additional-language.ctags for maintaining this file. The type member specification for VB.NET can be found at https://learn.microsoft.com/en-us/dotnet/visual-basic/reference/language-specification/type-members --langdef=vbnet --langmap=vbnet:.vb --regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Overloads|Overrides|Overridable|NotOverridable|MustOverride|Shared|Shadows|Async|Iterator)\s+)*\s*(?:Function|Sub)\s+([A-Z_0-9\[\]]*)\(.*?\)\s*(?:As\s+[\w.]+)?/\1/m,method/ --regex-vbnet=/^(?i)\s*(?:(?:Default|Public|Private|Protected|Friend|Overloads|Overrides|Overridable|NotOverridable|MustOverride|Shared|Shadows|WriteOnly|ReadOnly|Iterator)\s+)*\s*(?:Property)\s+([A-Z_0-9\[\]]*)\s+As\s+/\1/p,property/ ---regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shared|Shadows|Custom)\s+)*\s*(?:Event)\s+([A-Z_0-9\[\]]*)/\1/e,event/ +--regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shared|Shadows|Custom)\s+)*\s*(?:Event)\s+([A-Z_0-9\[\]]*)/\1/E,event/ --regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shadows|MustInherit|NotInheritable|Partial)\s+)*\s*(?:Class)\s+([A-Z_0-9\[\]]*)/\1/c,class/ --regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shadows)\s+)*\s*(?:Interface)\s+([A-Z_0-9\[\]]*)/\1/i,interface/ --regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shadows|Partial)\s+)*\s*(?:Structure)\s+([A-Z_0-9\[\]]*)/\1/s,struct/ ---regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shadows)\s+)*\s*(?:Enum)\s+([A-Z_0-9\[\]]*)/\1/e,enum/ +--regex-vbnet=/^(?i)\s*(?:(?:Public|Private|Protected|Friend|Shadows)\s+)*\s*(?:Enum)\s+([A-Z_0-9\[\]]*)/\1/g,enum/ --regex-vbnet=/^(?i)\s*(?:(?:Public|Friend)\s+)*\s*(?:Module)\s+([A-Z_0-9\[\]]*)/\1/c,class/ --regex-vbnet=/^(?i)\s*(?:(?:Public|Overloads|Shared|Shadows|Widening|Narrowing)\s+)*\s*(?:Operator)\s+([\+\-\*\/\\=<>a-z]+)/\1/m,method/