1. 程式人生 > >開發自己的IDE(十),我終於搞定了智慧提示了哇哈哈

開發自己的IDE(十),我終於搞定了智慧提示了哇哈哈

    今天我終於實現了偉大的智慧提示了,真是渾身上下都在發光啊。這次智慧提示的程式碼可以在Vczh Library+ 3.0的頁面上看到。我使用了上一篇文章所提到的技術,在使用者輸入文字的時候,通過迅速獲得“當前編輯語句”的語法樹,再加上舊的“當前編輯語句”的作用域物件,來判斷使用者究竟處於整份程式碼的什麼地方,最後給出正確的提示。

    下面開始貼圖了哈。

                                      


    整整兩天不容易啊,期間修掉了很多bug,因為這次整個parser都在面對一些殘缺不全的程式碼。下一篇文章我會重點描述關於IDE裡面處理兩顆有些時候不夠同步得樹的演算法。 

    在這裡遇到的問題一般都是如何確定一個語法樹節點覆蓋的原始碼的位置。當然這個主要是語法分析器乾的事情,不過實在是太複雜了,主要是我不想寫語法分析器,轉而寫了一個生成器,因此就不得不開發一個通用的演算法出來。第二步就是,通過游標的位置來判斷使用者接下來需要輸入的東西是什麼,這一步也比較囧,因為涉及到很多情況。使用者輸入的程式碼可能是殘缺不全的,因此語法樹的任何一個屬性(包括語法書自己)都有可能是null,稍微一不小心就會犯錯誤了……
    posted on 2010-11-07 19:11
陳梓瀚(vczh)
閱讀(18692) 評論(23)  編輯 收藏 引用 所屬分類: 開發自己的IDE