Curly braces autocomplete in Visual Studio 2012

后端 未结 4 565
余生分开走
余生分开走 2020-12-29 03:41

Just migrated from vs10 to vs12 and it seems like the curly braces is completely broken along side with some other features like indentation in C# (?) for example type:

相关标签:
4条回答
  • 2020-12-29 04:19

    Productivity Power Tools for 2012 are available now which has auto-brace completion, OP was almost definitely using the 2010 version.

    Productivity Power Tools for 2013

    If you haven't used it before, you can turn on/off pretty much every feature it adds in options>productivity power tools.

    0 讨论(0)
  • 2020-12-29 04:25

    Here's the code to create Auto Complete Brackets for RichTextBox using 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;  
                    }  
                }  
            }  
        }  
    }  
    
    0 讨论(0)
  • 2020-12-29 04:30

    Visual Studio 2010 doesn't do that by default (at least not in my case). Are you sure you weren't using an extension like Productivity Power Tools

    This one supports VS2012: http://visualstudiogallery.msdn.microsoft.com/0e33cb22-d4ac-4f5a-902f-aff5177cc94d

    0 讨论(0)
  • 2020-12-29 04:37

    If anyone is having this issue with VS 2013, there is a setting for this now. I just reset my VS settings and it started to complete my braces again. For me, it wasn't productivity power tools. You can turn it on/off here:

    enter image description here

    0 讨论(0)
提交回复
热议问题