2012-11-06 71 views
2

目前我正在嘗試爲PHP語言構建一個文本編輯器,該編輯器應該具有代碼補全的功能,即如果我開始輸入一個詞,則動態創建的下拉列表將顯示所有可用的關鍵字都以我輸入的字母開頭。任何機構都可以告訴我如何做到這一點。想法對我來說已經足夠了。如果可能的話,請爲我提供一個鏈接,使用C#編寫這樣簡單的應用程序構建帶代碼補全功能的文本編輯器

+2

我想問你爲什麼要重新發明輪子? –

+0

程序員的可能候選人.stackexchange.com – Adil

+0

只是爲了我自己的興趣 –

回答

0

考慮到一般來說這不是一件容易的事,所以沒有一些「簡單」的應用程序。

即使在一般的想法是不是火箭科學。你需要定義一個單詞字典,對應於某個鍵。當你輸入「。」時(在C#)你必須從字典中選擇所有對應於該鍵的單詞,該單詞相當於在上找到的單詞,從左側的側面出現「。」。

要做到這一點真正的工作應用並不那麼容易。順便說一句,我可以推薦看看他們的編輯MonoDevlop

我幾年前就和它合作爲DSL公司做了一個簡單的編輯器,花費了很少的時間來正確理解內部信息,很好地整合了「我的新語言」,「分離」Mono的控制並注入到我們的應用程序,就像一個可停靠的窗口。

+0

現在我的問題是我必須創建一個動態列表框,按下'。'後有詞典中的關鍵字。怎樣才能做到這一點?我想知道如何在給定'。'的正下方在豐富的文本框中動態地創建一個列表框。 –

+0

** **編輯器爲你處理這個問題,你只需要提供一個你想在裏面顯示的單詞的「詞典」,以及查找鍵。至少在那個時候它以那種方式工作,但不要認爲它有太大的改變。 – Tigran

0

如果我在這裏你我真的盡力避免車輪...代碼完成是大多數IDE的,現在配備了等你以後有什麼是已經上市...

話雖這麼說,我什麼將嘗試將通過PHP API並構造一個Suffix tree。這種類型的樹通常允許快速查找給定單詞。一旦您爲API編制索引,您還可以添加用戶在執行實際編程時添加的任何其他變量。

在用戶輸入第三個字母后,您可以在後綴樹中自動啓動搜索,或者爲用戶提供手動激活它的方法,如大多數IDE的鍵盤(Visual Studio,Netbeans,Eclipse等) )有。

請注意,這可能會變得棘手,因爲您可能想要選擇適當的變量類型。