2012-08-29 18 views
25

ただ、VS12へVS10から移行し、それは完全にC#の例のタイプの にくぼみのようないくつかの他の機能との側に沿って破断され、中括弧のように思える(?):中括弧の自動補完2012

public static void myFunc() { 

ビジュアルスタジオ10では、自動的に中括弧を追加します。 これを修正して同様の動作をさせるパワーツールなどがありますか? Brace Completerは、関数の後にEnterを押すと、中かっこを追加する必要があります。また

ツール - >オプション - >テキスト-Editorの> C#で - > formatting->自動的} に完成したブロックをフォーマットはデフォルトでオンになってます。..

+4

"ツール - >オプション - >テキストエディタ - > c# - >書式設定 - >自動書式設定済みブロック"}で終わり括弧を自動追加しません。終了中括弧を追加すると、囲まれたコード...適切なインデントなどの書式が設定されます。 – Thelonias

+2

ありがとう、私はこれが本当に迷惑な自動車のブレースをオフにする必要があった! – DevDave

+4

私は反対の問題があります。 2013年はデフォルトでこれが行われているようです。どのようにあなたはこれをオフにしますか? – BrainSlugs83

答えて

22

のVisual Studio 2010によることを行いません。デフォルト(少なくとも私の場合はそうではない)。あなたはこの1つはVS2012をサポートProductivity Power Tools

のような拡張機能を使用していなかったあなたは確信している: http://visualstudiogallery.msdn.microsoft.com/0e33cb22-d4ac-4f5a-902f-aff5177cc94d

+1

ありがとうが、中括弧補完者は、私が探していた振る舞いではない中括弧を完了するためにEnterを要求します。 – aromasca

+1

私はVS2012用に更新されていないように見える最初のリンク上のものを使用していたと仮定しています。それは入力を押すことを要求するように見えない。 "Automatic Brace Completionは、VB&C#用の開始構文が入力されたときに自動的に終了コード構造を挿入することにより、コード作成の生産性を向上させます。" – coolmine

7

Productivity Power Tools for 2012は自動ブレースの完了を持っている利用可能になりましたが、OPは、2010年バージョンを使用して、ほぼ間違いでした。あなたが前にそれを使用していない場合は

Productivity Power Tools for 2013

、あなたはほとんどすべてが、それはオプション>生産性のパワーツールに追加していますオン/オフにすることができます。

42

誰もがVS 2013でこの問題を抱えている場合は、今すぐこの設定があります。私はVSの設定をリセットして、括弧をもう一度完成しました。私にとっては、それは生産性のパワーツールではありませんでした。あなたがここでそれをオン/オフすることができます

enter image description here

+12

神様に感謝します。あなたがそれに慣れていないと信じられないほど迷惑です。 –

+0

さて、Visual Studioが検索用語 "ブレース"に対してこれを正しく返した場合は... – FriendlyGuy

-1

をここではC#を使用して、リッチテキストボックスの自動コンプリートブラケットを作成するためのコードです。

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Windows.Forms; 

namespace Auto_Complete_Brackets 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     //declare isCurslyBracesKeyPressed variable as Boolean and assign false value 
     //to check { key is pressed or not 
     public static Boolean isCurslyBracesKeyPressed = false; 

     //richTextBox1 KeyPress events 

     // if key (,{,<,",',[ is pressed then insert opposite key to richTextBox1 at Position SelectionStart+1 
     // add one line after inserting, e.Handled=true; 
     //finally set SelectionStart to specified position 

     private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e) 
     { 
      String s = e.KeyChar.ToString(); 
      int sel = richTextBox1.SelectionStart; 
      if (checkBox1.Checked == true) 
      { 
       switch (s) 
       { 
        case "(": richTextBox1.Text = richTextBox1.Text.Insert(sel, "()"); 
         e.Handled = true; 
         richTextBox1.SelectionStart = sel + 1; 
         break; 

        case "{": 
         String t = "{}"; 
         richTextBox1.Text = richTextBox1.Text.Insert(sel, t); 
         e.Handled = true; 
         richTextBox1.SelectionStart = sel + t.Length - 1; 
         isCurslyBracesKeyPressed = true; 
         break; 

        case "[": richTextBox1.Text = richTextBox1.Text.Insert(sel, "[]"); 
         e.Handled = true; 
         richTextBox1.SelectionStart = sel + 1; 
         break; 

        case "<": richTextBox1.Text = richTextBox1.Text.Insert(sel, "<>"); 
         e.Handled = true; 
         richTextBox1.SelectionStart = sel + 1; 
         break; 

        case "\"": richTextBox1.Text = richTextBox1.Text.Insert(sel, "\"\""); 
         e.Handled = true; 
         richTextBox1.SelectionStart = sel + 1; 
         break; 

        case "'": richTextBox1.Text = richTextBox1.Text.Insert(sel, "''"); 
         e.Handled = true; 
         richTextBox1.SelectionStart = sel + 1; 
         break; 
       } 
      } 
     } 


     // richTextBox1 Key Down event 
     /* 
     * when key { is pressed and {} is inserted in richTextBox 
     * and isCurslyBracesKeyPressed is true then insert some blank text to richTextBox1 
     * when Enter key is down 
     * it will look like this when Enter key is down 

      { 
        | 
      }   

     * */ 

     private void richTextBox1_KeyDown(object sender, KeyEventArgs e) 
     { 
      int sel = richTextBox1.SelectionStart; 
      if (e.KeyCode == Keys.Enter) 
      { 
       if(isCurslyBracesKeyPressed==true) 
       { 
        richTextBox1.Text = richTextBox1.Text.Insert(sel, "\n   \n"); 
        e.Handled = true; 
        richTextBox1.SelectionStart = sel + "   ".Length; 
        isCurslyBracesKeyPressed = false; 
       } 
      } 
     } 
    } 
} 
+2

これはどのように質問にも関係しますか? – VSG24