VB.NET语法编码

VB.NET语法编码,vb.net,syntax-highlighting,Vb.net,Syntax Highlighting,我知道很多人问这些是如何做到的,但我不明白在什么情况下使用这些答案,所以 我正在为Python语言的subversion构建一个代码编辑器,我发现了一种在RichTextBox中突出显示关键字的非常好的方法,方法如下: bluwords.Add(KEYWORDS GO HERE) If scriptt.Text.Length > 0 Then Dim selectStart2 As Integer = scriptt.SelectionStart scr

我知道很多人问这些是如何做到的,但我不明白在什么情况下使用这些答案,所以

我正在为Python语言的subversion构建一个代码编辑器,我发现了一种在RichTextBox中突出显示关键字的非常好的方法,方法如下:

  bluwords.Add(KEYWORDS GO HERE)
  If scriptt.Text.Length > 0 Then
       Dim selectStart2 As Integer = scriptt.SelectionStart
       scriptt.Select(0, scriptt.Text.Length)
       scriptt.SelectionColor = Color.Black
       scriptt.DeselectAll()
       For Each oneWord As String In bluwords
            Dim pos As Integer = 0
            Do While scriptt.Text.ToUpper.IndexOf(oneWord.ToUpper, pos) >= 0
                 pos = scriptt.Text.ToUpper.IndexOf(oneWord.ToUpper, pos)
                 scriptt.Select(pos, oneWord.Length)
                 scriptt.SelectionColor = Color.Blue
                 pos += 1
            Loop
       Next
       scriptt.SelectionStart = selectStart2
  End If
scriptt是richtextbox 但是,当通过OpenFileDialog键入或加载大量代码时,代码块就会丢失,语法选择就会分崩离析,完全破坏它。 我正在寻找一种更有效的方法,也许更像VisualStudio本身……因为不需要高亮显示所有文本,将其设置为黑色,然后重新进行所有语法转换,如果返回到文本之间插入字符,文本将开始恢复正常。 此外,在此版本的Python中,哈希用于仅注释行上的注释,而双哈希用于同一行上的注释。 现在我看到有人问了这个确切的问题,在这行末尾选择的工作答案是:^\'[^\r\n]+$|[^\r\n]+$ 我似乎无法付诸实践。 我还想在引号之间选择文本,并将其变成绿松石色,例如在第一个引号和第二个引号之间,文本是绿松石色的,在第三个和第四个引号之间也是如此


感谢您的帮助

visualstudio使用基于语言语法的完整解析器;使用一些简单的正则表达式永远不会得到相同的结果

你看过吗


另请参见:

对不起,我开发此应用程序的要点是不需要Java。我正在用我的应用程序替换Java应用程序。我肯定有办法?即使我必须搬到C?谢谢你的回复。