【问题标题】:VS 2013 Community - Creating code snippetsVS 2013 社区 - 创建代码片段
【发布时间】:2015-07-06 14:45:43
【问题描述】:

我一直在关注这个:https://msdn.microsoft.com/en-us/library/ms165394.aspx?f=255&MSPPError=-2147217396

我正在尝试编写一个代码 sn-p 以加快我的编码速度(#procrastination)

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
    xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Class layout for PlatformGameEngine</Title>
    </Header>
    <Snippet>
      <Code Language="C++">
        <![CDATA[
          namespace PlatformGameEngine
          {
              class _
              {
              // Methods
              public:
                  _();
                  ~_();
              private:

              // Properties
              public:

              private:

              }
          }
        ]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

1.为什么下面的sn-p代码不起作用?

选择的 sn-p 文件无效。

2.如何替换 _ 部分,以便能够在字段中切换并填写它们?

【问题讨论】:

    标签: c++ visual-studio-2013 code-snippets


    【解决方案1】:

    从 Visual Studio sn-p manager 中找到一个示例:

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\Snippets\1033\Visual C++
    

    我可以从课堂示例中看到我缺少一些东西:

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets
        xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title>Class layout for PlatformGameEngine</Title>
          <Shortcut>gameengineclass</Shortcut>
        </Header>
        <Snippet>
          <Declarations>
            <Literal>
              <ID>name</ID>
              <ToolTip>Class name</ToolTip>
              <Default>MyClass</Default>
            </Literal>
          </Declarations>
          <Code Language="cpp">
            <![CDATA[#pragma once
    
            // Boiler plate includes
    
    
    
            // Project specific includes
    
    
    
            // Namespaces
    
    
    
            namespace PlatformGameEngine
            {
                class $name$
                {
                // Methods
                public:
                              $name$();
                              ~$name$();
                private:
    
                // Properties
                public:
    
                private:
    
                }
            }]]>
          </Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>
    
    • 删除了 CDATA[...
    • 之后的间距
    • 在页眉中添加了快捷节点
    • 添加了带有 ID 部分的声明以允许输入内容

    注意:

    • 您必须不断重新导入才能获得对单个 sn-p 所做的更改...但是如果您添加整个文件夹,则不必这样做。
    • 您可以使用ctrl+k,然后使用h,同时继续按住ctrl 以使用您的sn-p。只需开始输入您的快捷方式,它就会弹出
    • 要删除代码 sn-ps,您必须删除整个文件夹并重新添加文件夹...#真的吗?
    • 如果您的定义没有出现...例如:$classname$::$classname,请尝试将&lt;Default&gt;MyClass&lt;/Default&gt; 放入...这似乎迫使它工作

    【讨论】:

      【解决方案2】:

      除了@Jimmyt1988 的回答,对我来说,问题在于语言标签。以下方法均无效:

      • &lt;Code Language="C++"&gt;
      • &lt;Code Language="Visual C++"&gt;
      • &lt;Code Language="VisualC++"&gt;

      仅当我将其更改为时才有效:

      • &lt;Code Language="cpp"&gt;

      这是针对 Visual Studio 2015 的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-07
        • 2017-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-30
        • 1970-01-01
        • 2015-03-15
        相关资源
        最近更新 更多