SSMS 片段 - 多次使用 SurroundsWith 选择

问题描述 投票:0回答:2

我正在编写 SSMS SurroundsWith 片段。我可以按预期使用 $selected$ 进行选择并用片段包围选择。我想用它来包围字段名称并在代码片段中多次使用该字段名称。如果我多次使用 $selected$,它只会将该字段粘贴到最终的 $selected$ 中。其他时间都是空的。有没有办法在 SSMS 代码片段中多次使用 $selected$ ?

一个示例是将字段的第一个字母大写的代码。

UPPER(LEFT(word,1))+LOWER(SUBSTRING(word,2,LEN(word))) AS NewName

在此示例中,我希望能够突出显示“word”,选择我的 SurroundsWith 代码片段,并以这种方式填充此代码片段:

UPPER(LEFT($selected$,1))+LOWER(SUBSTRING($selected$,2,LEN($selected$))) AS $end$

我可以插入一个代码片段,然后手动添加该字段三次,但如果我可以创建一个代码片段,根据代码片段的指示多次添加突出显示的字段,那就会很方便。我的手永远不必离开键盘,光标已放置并准备好输入字段的新名称。

sql-server ssms code-snippets
2个回答
1
投票

我的代码片段用 ODBC TRIM 函数包围列名,我想重复列名作为别名。

黑客方法是创建一个 Surround-With 片段,但复制我想要环绕两次的选定列,然后将其粘贴回 Alias 占位符中。

 <![CDATA[{ fn TRIM( $selected$ $end$ ) } $Alias$ ]]>

因此选择列名称(ctrl-w),

(ctrl-c)复制它,

ctrl-k、ctrl-s 片段,

然后 (ctrl-v) 将列名称粘贴到 $Alias 中。

现在,如果我可以让 SSMS 在关闭它时停止要求保存存储过程编辑... >=(


0
投票

SurroundsWith
的目的是片段文本将完全包围查询编辑器中
$selected$
的文本。由于您只能选择一段文本,因此支持多个这样的标记是没有意义的。

我知道您的用例与他们的预期不同,但这并不会使他们的意图变得奇怪。这只是意味着他们没有预料到您的用例(并且可能会说它更适合

Expansion
)。

因此,目前我建议您使用

Expansion
并放弃可以先突出显示文本的想法(因为这两种代码片段类型都无法完成您想要的所有操作)。这意味着您只需插入包含多个标记的片段,输入您想要的单词
$selected$
一次,然后填写其余的标记。不理想,但并不比您的目标难那么多。

您可以提交反馈来解释您的用例,并请求额外类型的代码片段(或对

SurroundsWith

 功能的扩展,没有双关语的意思):

  • 微软Azure |分享你的想法
© www.soinside.com 2019 - 2024. All rights reserved.