簡體   English   中英

在 Visual Studio 中自動將區域添加到代碼

[英]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

晚會遲到了,但對於像我這樣將來遇到這個問題的人來說,

至少在 VS2022 中可以在 Visual Studio 中使用 CodeMaid Extension。

將擴展程序 go 安裝到 code maid 選項並啟用插入新區域后。

在此處輸入圖像描述

啟用它后,您需要在 class 上使用 Reorganize document,它可以很好地完成工作。

重組活動文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM