【问题标题】:Visual Studio Code Snippet Literal Replacement Ends PrematurelyVisual Studio 代码片段文字替换过早结束
【发布时间】:2012-05-13 12:49:00
【问题描述】:

在将自定义 HTML 代码 sn-p 插入 MVC 视图时,文字替换的编辑在我开始输入值时结束。

我错过了什么吗?

我的文字被使用了两次来替换属性名:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <Header>
        <Title>MVC Field Pair</Title>
        <Shortcut>mvcfieldpair</Shortcut>
        <Description>Inserts an MVC label/input pair</Description> 
        <SnippetTypes>
            <SnippetType>Expansion</SnippetType> 
        </SnippetTypes>
    </Header>
    <Snippet>
        <Declarations>
            <Literal Editable="true">
                <ID>property</ID>
                <ToolTip>Model property</ToolTip>
                <Default>myProperty</Default>
            </Literal>
        </Declarations>
        <Code Language="html">
            <![CDATA[
                <li>
                    <%= Html.LabelFor(m => m$property$) %>
                    <%= Html.TextBoxFor(m => m$property$) %>
                </li>
            $end$]]>
        </Code>
    </Snippet>
</CodeSnippet>

【问题讨论】:

  • 据我所知,XML 对于schema 是有效的。我已经练习过内置的 sn-ps,它也不止一次使用文字,但那些是用于 C#、XSLT 等的。会不会是 IntelliSense 因为我正在输入.PropertyName 而出错?跨度>

标签: visual-studio-2010 code-snippets literals replace


【解决方案1】:

相对于&lt;![CDATA[]]&gt; 的位置很重要。我调整了我的 sn-p:

<CodeSnippet Format="1.1.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <Header>
        <Title>MVC Field Pair</Title>
        <Shortcut>mvcfieldpair</Shortcut>
        <Description>Inserts an MVC label/input pair</Description> 
        <SnippetTypes>
            <SnippetType>Expansion</SnippetType> 
        </SnippetTypes>
    </Header>
    <Snippet>
        <Declarations>
            <Literal>
                <ID>property</ID>
                <ToolTip>Model property</ToolTip>
                <Default>myProperty</Default>
            </Literal>
        </Declarations>
        <Code Language="html"><![CDATA[<li>
    <%= Html.LabelFor(m => m$property$) %>
    <%= Html.TextBoxFor(m => m$property$) %>
</li>$end$]]></Code>
    </Snippet>
</CodeSnippet>

【讨论】:

    猜你喜欢
    • 2018-07-07
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 2011-07-05
    • 2017-12-31
    相关资源
    最近更新 更多