我想制作一个代码编辑控件,它可以像 Visual Studio 一样格式化文本,直到现在我已经实现了语法高亮和自动完成,但我想在嵌套的花括号中格式化文本。例如:考虑一个 for 循环,
for(int i=0;i<=10;i++)
{
Function_One(); //This should be a tab away from first brace
Function_Two(); //So with this
if(a==b) //So with this
{ //This should be four tabs away from first brace
MessageBox.Show("Some text");//This should be six tabs away from first brace
} //This should be four tabs away from first brace
}
现在我想要的是这应该看起来像这样,
for(int i=0;i<=10;i++)
{
Function_One();
Function_Two();
if(a==b)
{
MessageBox.Show("Some text");
}
}
我已经尝试过正则表达式,但在某些时候它们无法匹配,所以我尝试将它与代码匹配,但代码无法匹配非常深的嵌套代码或很难实现,所以有什么方法可以实现这一点,还有一个我在 Winforms 中使用 C# 控制 RichTextBox 做这一切。