Skip to content

Commit dab57f2

Browse files
authored
Merge pull request #201 from Megadesty/feature/vb-codegenerator
Add a CodeGenerator for Visual Basic
2 parents 181ad58 + b30d741 commit dab57f2

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

src/Nerdbank.GitVersioning.Tasks/AssemblyVersionInfo.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ private CodeGenerator CreateGenerator()
289289
case "visual basic":
290290
case "visualbasic":
291291
case "vb":
292+
return new VisualBasicCodeGenerator();
292293
default:
293294
this.Log.LogError("Code provider not available for language: {0}. No version info will be embedded into assembly.", this.CodeLanguage);
294295
return null;
@@ -360,6 +361,34 @@ internal override void EndThisAssemblyClass()
360361
this.codeBuilder.AppendLine("}");
361362
}
362363
}
364+
365+
private class VisualBasicCodeGenerator : CodeGenerator
366+
{
367+
internal override void AddComment(string comment)
368+
{
369+
this.AddCodeComment(comment, "'");
370+
}
371+
372+
internal override void DeclareAttribute(Type type, string arg)
373+
{
374+
this.codeBuilder.AppendLine($"<Assembly: {type.FullName}(\"{arg}\")>");
375+
}
376+
377+
internal override void StartThisAssemblyClass()
378+
{
379+
this.codeBuilder.AppendLine("Partial Friend NotInheritable Class ThisAssembly");
380+
}
381+
382+
internal override void AddThisAssemblyMember(string name, string value)
383+
{
384+
this.codeBuilder.AppendLine($" Friend Const {name} As String = \"{value}\"");
385+
}
386+
387+
internal override void EndThisAssemblyClass()
388+
{
389+
this.codeBuilder.AppendLine("End Class");
390+
}
391+
}
363392
#endif
364393

365394
private static string ToHex(byte[] data)

0 commit comments

Comments
 (0)