2010-04-25 25 views
0

我知道很多人問怎麼了一些這些都做了,但我不明白,在其中使用的答案的情況下,所以...VB.NET語法編碼

我建立了一個代碼編輯器Python語言的顛覆,而且我發現通過這個突出的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) 但當代碼的任何像樣的量輸入(或通過打開文件對話框加載)代碼塊丟失,語法選擇分崩離析,而它只是簡單地將其廢棄。 我正在尋找一個更有效的方式來做到這一點,也許更像是視覺工作室本身...因爲沒有必要突出顯示所有文本,將其設置爲黑色,然後重做所有的語法,文本開始如果您返回在文本之間插入字符,則會超出正確的範圍。 另外,在這個版本的Python中,散列(#)僅用於註釋評論,而在同一行上使用雙重散列(##)註釋。 現在我看到有人詢問了這個確切的事情,而選擇到行尾的工作答案是這樣的:^ \'[^ \ r \ n] + $ |''[^ \ r \ n ] + $ ,我似乎無法實踐。 我也想選擇引號之間的文本,並把它變成綠松石,如第一引號和第二引號之間,文本是綠松石,第三和第四等之間相同...

任何幫助表示讚賞!

回答

0

Visual Studio使用基於語言語法的全面解析器;使用一些簡單的正則表達式永遠不會給你相同的結果。您是否看過SyntaxHighlighter

(另見:Syntax Highlighting

+0

對不起,我開發這個應用程序的整點是讓不需要的Java。我正在用我的REPLACING Java應用程序。我確定有一種方法?即使我必須遷移到C#? 謝謝你的回覆。 – 2010-04-25 06:49:01

+0

ColorCode似乎很有前途... – 2010-04-25 17:08:43

+0

好吧它不... – 2010-04-28 06:09:25