[英]Automatically Add Regions to Code in Visual Studio
我的團隊非常喜歡使用區域,考慮到這一點,它幾乎成為我們代碼中的實際標准。 我最近意識到,每次創建 class、測試方法等時,我都厭倦了編寫或 ctrl+c / ctrl+v'ing 這些...
我想知道是否有可能(通過宏或其他一些功能)讓 Visual Studio 自動將這些添加到您的代碼中。
例如,如果我將一個新的 class 文件添加到我的項目中,您能否施展某種魔法讓 visual studio 生成如下文件:
namespace Test
{
class MyClass
{
#region ------------ members --------------
#endregion
#region ------------ properties --------------
#endregion
#region ------------ methods --------------
#endregion
}
}
當我編寫單元測試時,我真的因為不知道如何做而感到惱火。 這可能有點棘手,但我試圖找到一種方法來自動添加--set up--
和--run test--
區域以測試方法,因為我們的團隊堅持使用它們。
所以,當我 go 創建一個新的測試方法
[TestMethod]
public void WhenCondition_WillProduceExpectedResult()
{
}
Visual Studio 會自動將這兩個區域添加到方法中,例如:
[TestMethod]
public void WhenCondition_WillProduceExpectedResult()
{
#region ------------- set up -------------
#endregion
#region ------------- run test -------------
#endregion
}
不確定這是否可以完成,如果可以,是否可以通過 vs-macro 或擴展來完成。 任何幫助深表感謝!
您可以創建一個簡單的代碼片段,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Simple</Title>
<Shortcut>simple</Shortcut>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>name</ID>
<ToolTip>Replace with the name of the action</ToolTip>
<Default>Action</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
public void $name$()
{
#region ------------- set up -------------
#endregion
#region ------------- run test -------------
#endregion
}
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
將該文件保存到C:\\Users\\<your_user>\\Documents\\Visual Studio 2010\\Code Snippets\\Visual C#\\My Code Snippets
。
現在你只需要重新打開 Visual Studio,在一個類中輸入“simple”並按兩次 Tab 鍵。
我知道的兩種方式:
根據此MSDN 指南創建一個片段。
下載具有“環繞”功能的 Visual Studio Extension Productivity Power Tools 。 這圍繞着用戶使用所選片段做出的選擇,例如#region #endregion
或 if 語句。
不知道為什么這么多人站出來反對地區; 他們幫助我很容易地對我的代碼進行分類。 我使用的是放置在我的一個鍵盤按鈕上的宏,它會自動為我插入區域。 我可以給你的一個提示是,如果可能的話,在每次按鍵之間放置一個小的延遲,否則 VS 有時會錯過字符。
希望這可以幫助!
使用以下代碼段
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>#Classregion</Title>
<Shortcut>#Classregion</Shortcut>
<Description>Code snippet for #Classregion</Description>
<Author>Author Name</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>name</ID>
<ToolTip>Region name</ToolTip>
<Default>MyRegion</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
#region ------------- Members ---------------
$selected$ $end$
#endregion
#region --------------- Properties ---------------
$selected$ $end$
#endregion
#region --------------- Methods ---------------
$selected$ $end$
#endregion
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
將其保存在 C:\\Users\\\\Documents\\Visual Studio 2010\\Code Snippets\\Visual C#\\My Code Snippets 下
稍后它將可以在 C# 代碼中訪問,方法是右鍵單擊 > 插入片段 > 我的代碼片段 > #Classregion
如果你有 Resharper,那么文件結構窗口對於管理區域非常方便,允許簡單的拖放來移動方法/屬性塊等。 它顯示您的區域(可折疊)並與主代碼視圖同步:
https://www.jetbrains.com/help/resharper/Reference__Windows__File_Structure_Window.html
例如,此處顯示了一個名為preview的區域:
我更喜歡按照 Sam Harwell 的回答中所述編輯類模板:
https://stackoverflow.com/a/2072717
您可以在 Visual Studio 版本的類模板位置打開 class.cs 文件。 例如,Visual Studio 2017 Enterprise 的位置是:
C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\IDE\\ItemTemplates\\CSharp\\Code\\1033\\Class\\Class.cs
我使用文本編輯器打開該文件並向其中添加區域。 然后將使用區域創建所有新類。
我同意區域 a 是一個壞主意,但對每個人來說都是如此。
你可能想看看NArrange 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.