我对Visual Studio自动大括号完成的问题在于它忽略了我正在尝试围绕整个块。出于这个原因,我习惯性地禁用它,但是他们已经将这个默认为“打开”多年,所以我想我会试着找出我是否遗漏了一些关于如何有效使用Visual Studio的内容......不会这是我多年来第一次不知道一些基本的编辑功能。
主要的问题是当我尝试环绕文本时,从命令列表周围的lock (myMutex) {
开始:
// Imagine I just typed the following line, where ^ is the cursor
lock (myMutex) {^ } // <--- it just auto-added " }" to the end.
command1();
command2();
command3();
// where I plan to put the "}"
然后我必须按删除正确的次数来撤消自动格式化和错误放置的大括号命令,以便继续向下搜索光标以完成周围。
这似乎是迄今为止常见的情况,使得括号自动完成非常烦人。难道我做错了什么?是否有一些我可以输入的键盘序列,这将导致我应该使用的我想要的东西,我只是不知道?或者我是否正确,每次重新安装VS时都禁用它?
答案 0 :(得分:0)
据我所知,Visual Studio中没有任何内置功能可用于此任务。有一些工具(非免费)可以极大地改善Visual Studio编辑体验。但正如我所说,它们不是免费的,有时它们也会减慢Visual Studio的基本操作。
但是,您可以创建一个SurroundsWith
代码段。一个小的自动化向导,您可以在Visual Studio 2015中检索并执行,右键单击要用大括号包围的所选代码块。
Snippet Designer
工具菜单中的扩展和更新。在Snippet编辑器中添加以下行
{
$selected$ $end$
}
然后在代码段框中输入一些名称并选择C# 作为语言。
现在使用您选择的任何文本编辑器打开Snippet并进行更改
值<SnippetType>
和
<SnippetType>SurroundsWith</SnippetType>
保存文件。
通常,此时,Visual Studio应该能够立即识别新的代码段,但无论如何您可以关闭并重新打开IDE。
现在,如果您选择一个代码块,请右键单击并选择Surrounds With
( Ctrl + K S ),MyCodeSnippets
,然后选择在命名代码段中,您将使用缩进的代码
如果您有兴趣,可以在MSDN上的此页面上找到有关Snippets功能的更多详细信息:Creating Code Snippets
答案 1 :(得分:0)
我在AutoHotKey的帮助下解决了这个问题。我已经将此程序用作文本扩展器,我只是添加了:
send, {{}{enter}{}}
在新行上“展开”一个开放的花括号,其封闭对应物。然后我走到那个封闭的括号,并在我想要包围的块之后用 ALT + DOWN 移动整行。