Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automatically add namespace when adding new item

When adding a new item (class, control, etc) in C# it will automatically add a namespace to the file depending on the location in the project.

Is this also available for VB.NET?

The code 'Namespace DataClasses.AX' and 'End Namespace' would be generated.

Namespace DataClasses.AX
    <Serializable()> _
    Public Class AxInventItem

#Region " Constructors "
        Sub New()

        End Sub
#EndRegion
    End Class
End Namespace
like image 714
Ralf de Kleine Avatar asked Jul 23 '10 10:07

Ralf de Kleine


2 Answers

You dont say what version of visual studio you are using, but it is doable by default with VS2008.

Goto : C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\VisualBasic\Code\1033\Class.zip (if this doesnt exist i will post you the contents of mine).

Inside you will find two files: Class.vb and Class.vstemplate

Open Class.vb (i extracted it and edited in notepad++ but anything will do). Change it to read:

Namespace $itemfolder$

    Public Class $safeitemname$

    End Class

End Namespace

Shut Visual stuid (all instances)

Save and replace the one inside the zip.

Openup a command prompt (easiest is to use the visual studio command prompt), and run the following:

devenv.exe /InstallVSTemplates

Open Visual Studio again, create a blank project and add a folder to the project, and add a class inside the folder and you will have your namespace automagically added to your class file.

Edit

Class.vb:

Namespace $itemfolder$

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks>Class Created by $username$ on $date$</remarks>
    Public Class $safeitemname$

    End Class

End Namespace

Class.vstemplate:

<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
  <TemplateData>
    <Name Package="{164B10B9-B200-11D0-8C61-00A0C91E29D5}" ID="3020" />
    <Description Package="{164B10B9-B200-11D0-8C61-00A0C91E29D5}" ID="3021" />
    <Icon Package="{164B10B9-B200-11D0-8C61-00A0C91E29D5}" ID="4510" />
    <ProjectType>VisualBasic</ProjectType>
    <SortOrder>100</SortOrder>
    <DefaultName>Class.vb</DefaultName>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
    <TemplateID>Microsoft.VisualBasic.Code.Class</TemplateID>
    <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
  </TemplateData>
  <TemplateContent>
    <ProjectItem ReplaceParameters="true">Class.vb</ProjectItem>
  </TemplateContent>
  <WizardExtension>
    <Assembly>VBClassTemplateWizard, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=f12a64f29cf5aee5</Assembly>
    <FullClassName>VBClassTemplates.VBClassReplacements</FullClassName>
  </WizardExtension>

</VSTemplate>
like image 91
Pondidum Avatar answered Nov 15 '22 08:11

Pondidum


This is available as part of Resharper where you can create templates to do this.

This is the standard template.

Namespace $NAMESPACE$
    Public Class $CLASS$ 
        $END$
    End Class
End Namespace
like image 34
chrissie1 Avatar answered Nov 15 '22 06:11

chrissie1