zoukankan      html  css  js  c++  java
  • VS自定义代码块Code Snippet

    一  、简述

      我们在开发当中,避免不了一些重复的开发工作,在你漫长的开发以及学习当中,你会发现有这么一部分代码是你时常会使用到的。我想这个工具也是针对这个原因出来的吧,它就是预先把你需要的这部分代码的主干部分给它提练出来,然后你只要修改局部的某些部分内容,从而完成你代码的编辑工作。这样的好处,就是当你使用一个快捷键的方式,就可以把你这部分常用的代码直接插入到你需要的代码文件当中。而不需要你由头到尾地重复一些额外的工作,缩短你的开发时间,提高你的工作效率。这就是今天要说到的Code Snippet

    二 、Code Snippet介绍

      一个 CodeSnippet 则主要包含 <Header> 和 <Snippet> 两部分。一个 <CodeSnippets> 元素可以包含多个不同的 <CodeSnippet> 。其中 <Header> 部分主要是对这个 Snippet 的一个声明,包括 Snippet 的名称、描述、作者及 Snippet 的类型。

    1.Header

      <Title>表示此代码段标题

      <Shortcut>设置快捷键

      <Description>对代码段的描述

      <SnippetTypes>可以包含多个<SnippetType>其取值有三种Expansion、SurroundsWith、Refactoring 。Expansion允许代码插入在光标处;SurroundsWith允许代码围绕在选中代码两边;Refactoring指定了C#重构过程中所使用的Snippet,在自定义Snippet中不能使用。如果该值不做设置,则Snippet可以放在任何地方。

    <Snippet>节点是实现代码管理的地方,其包含四个子节点<Code><Declarations><Imports><References>

    2.Snippet

    <Code>

    包含<![CDATA[]]>中,放置模版代码,此节点设置Language(C# VB XML),Kind(类型:如方法体,方法声明),Delimiter(分隔符,默认值是$)

    private $type$ $field$;

    public $type$ $property$
    {
    get { return $field$;}
    set { $field$ = value;}
    }

    为定义的模板代码,type,field,property为定义的变量,变量在Declarations的Literal中声明。

    $end$为当按enter键后光标的默认位置

    <Declarations>

    包含多个<Literal>和<Object>节点,<Literal>用于设定变量值<Object>用于声明模版对象。

    这里只说明Literal

    ID 默认属性名称

    ToolTip 属性说明

    Default 默认类型

    <Imports>

    引入命名空间,只支持vb .  - -#.

    <References>

    添加程序集引用,只支持vb .  - -#.

    三 、Code Snippet简单使用

      首先可以在      工具  >>  代码片段管理器    中找到系统定义的snippet代码片段。如for,if等,可以看到对应语言和存储位置。

    下面以propfull自动属性为例讲解:

    创建文件propfull.snippet,实质为xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
        <CodeSnippet Format="1.0.0">
            <Header>
                <Title>propfull</Title>
                <Shortcut>propfull</Shortcut>
                <Description>属性和支持字段的代码片段</Description>
                <Author>Microsoft Corporation</Author>
                <SnippetTypes>
                    <SnippetType>Expansion</SnippetType>
                </SnippetTypes>
            </Header>
            <Snippet>
                <Declarations>
                    <Literal>
                        <ID>type</ID>
                        <ToolTip>属性类型</ToolTip>
                        <Default>int</Default>
                    </Literal>
                    <Literal>
                        <ID>property</ID>
                        <ToolTip>属性名</ToolTip>
                        <Default>MyProperty</Default>
                    </Literal>
                    <Literal>
                        <ID>field</ID>
                        <ToolTip>支持此属性的变量</ToolTip>
                        <Default>myVar</Default>
                    </Literal>
                </Declarations>
                <Code Language="csharp"><![CDATA[private $type$ $field$;
    
        public $type$ $property$
        {
            get { return $field$;}
            set { $field$ = value;}
        }
        $end$]]>
                </Code>
            </Snippet>
        </CodeSnippet>
    </CodeSnippets>

    定义好放在C#对于路径下,然后就可以在VS中敲入propfull,就会实现以下输出

            private int myVar;
    
            public int MyProperty
            {
                get { return myVar; }
                set { myVar = value; }
            }
  • 相关阅读:
    Memcached安装配置及访问
    Nginx 学习
    Python Django之路由系统
    Nginx 反向代理、负载均衡、页面缓存、URL重写以及读写分离
    Python 之Django
    Python 之WEB框架
    Python 之WEB前端插件
    JS 之作用域链和闭包
    Python 前端之JQuery
    对应用程序进行描述说明(权限,平台)
  • 原文地址:https://www.cnblogs.com/xieyang07/p/10258195.html
Copyright © 2011-2022 走看看