VS 2013社区 - 创建代码段

时间:2015-04-27 23:32:01

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

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

我正在尝试制作代码片段以加快编码速度(#procststination)

<?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。为什么以下代码段不起作用?

  

所选的代码段文件无效。

2。如何将_部分替换为能够标记字段并填写它们?

2 个答案:

答案 0 :(得分:3)

从Visual Studio代码段管理器中找到一个示例:

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部分的声明以允许输入内容

注意:

  • 您必须继续重新导入以获取对单个代码段所做的更改...但如果您添加整个文件夹,则不必执行此操作。
  • 您可以使用ctrl+k然后h,同时继续按住ctrl以使用您的代码段。只需开始输入快捷方式,就会弹出
  • 要删除代码段,您必须删除整个文件夹并重新添加文件夹... #really?
  • 如果您的定义没有出现......例如:$classname$::$classname,请尝试将<Default>MyClass</Default>放入...这似乎迫使其起作用

答案 1 :(得分:0)

除了@ Jimmyt1988的回答,对我来说,问题是语言标签。以下都不起作用:

  • <Code Language="C++">
  • <Code Language="Visual C++">
  • <Code Language="VisualC++">

只有在我将其更改为:

时才有用
  • <Code Language="cpp">

这是针对Visual Studio 2015的。