LuaBoy Lua編輯器構想

2021-06-08 00:26:32 字數 2274 閱讀 6294

離開liquid公司已經兩年多了,最近和同事聊起過去的生活,索然物是人非,但是對當時做的東西還是熱情不減,用lua開發一整套的金融期權交易測試平台,簡單的lua呼叫,就可以讓沒有任何程式設計經驗的測試人員**級的測試整個交易系統,也彌補了很大程度上黑盒測試的不足, 比如我未來測試gateway的效能,一秒鐘發1000個單子,如果純粹的ui黑盒測試,測試人員不累死才怪。還有很多特殊情況的模擬,比如在乙個產品閉市的一剎那交易,程式的行為如何。當時那個專案我乙個設計,開發到最後的商用,後續有很多同事陸續加入。直至到現在依然還在開發維護和使用。現在我已經好久好久不寫**了,每天不是開會,就是在收發郵件,除了每天回家研究一些開源的庫,和技術群的兄弟們扯扯淡之外,離技術越來越遠了。回想當時的raser專案,其實我當時lua編輯器已經小聚規模。最近又想把曾經的**整理,做乙個叫luaboy的lua編輯器ide出來,可能是在造輪子,也是為了自己不再手癢。

我覺得luaboy應該有的功能:

1)lua編輯器最基本的功能,編輯,執行和除錯。這裡沒有什麼可說了,最基本的功能,現在的luaeditor,luaforwindows中的編輯器都有的最基本功能。

2)語法高亮和著色。這個也是最基本的功能。但是我覺得luaboy應該具備使用者匯出類函式,類,物件高亮顯示的功能。因為lua除了基本的關鍵字之外更多的功能在於宿主之間的協調。

3)   智慧型提示,這個現在的流行的編輯器裡面都有,但是做的不是很好,提示和自動完成的都是lua標準庫裡面的標準函式,而對於客戶端匯出類物件,函式和類成員沒有支援,其實這是最重要的。比如在raser開發中,使用者是哪些一點程式設計知識都不懂的測試人員,他們需要的就是簡單,不需要差任何文件,乙個字母輸入,就可以聯想使用。所以我覺得最終要做到vc系列的智慧型提示功能,其實這個當時我已經完全實現了。

4)自動完成,現在流行的編輯器還處在基本的水平,並沒有對lua編輯中文字進行實時分析,然後在編輯中給出提示並自動完成。這種也很對於效率和容錯有很大幫助。這個因為c++和lua語言執行機理有很大關係,c++靜態語言我,編譯連線,執行,lua動態指令碼,解釋執行,c++可以很方便的達到自動完成,因為用前端編譯器直接生成符號表,而lua需要第一行執行都不知道第二行幹什麼。 所以對這種:

class producemanager

~productmanager(){}

bool subscribe(){}

string name;

}producemanager& getproducemanager();

test.lua

local  pmg= getproductmanager();

如果我輸入 pmg.的時候編輯器就應該自動彈出提示列表把這個pmg中的函式和成員列出來,然後供使用者選擇。當時的指令碼我已經實現了這個功能。自動完成和動態提示覆蓋匯出**和lua基本元素。

5)編輯錯誤提示,比如vc2010中,你在編輯一行**的時候如果前面的編輯中有錯誤,就會在對應的錯誤行下有個紅色的波浪線表示該行有錯誤,滑鼠移上去會告訴你為什出錯。現在流行的編輯器都沒有看到如此這樣的功能。

比如test.lua

local testnum = {};

loca   tt

;                          //這裡local寫錯了,那麼我在後面編輯的時候,這裡應該有個紅色波浪線表示這裡有錯。而不用在在指令碼執行到的時候停下裡。

tt = 0;

6)客戶端類批量匯出。很多做遊戲的朋友,如果匯出函式規模不大,可以手動寫匯出**或者用luaplus哪些匯出工具匯出,但是需要手工匯出,費時費力,重複勞動。這還好,如果當時我做的raser未來支援測試需要,匯出的類有幾百個,函式上千,如果手動寫匯出**,不累死才怪。所以我覺得luaboy應該有批量匯出的功能。

第一:有個選擇框選擇你原始的邏輯**庫,不改變你的業務**,並且提取其中的標頭檔案,比如producemanager.h

第二:需要使用者在producemanager.h規定哪些函式和類匯出,如果不設定,預設public的屬性都匯出,所以有些類根本不動就可以匯出使用。

就兩步。比如project/code/header/下所有的匯出**自動生成,並且可以在lua直接使用。

7)多指令碼,多工程管理。

以上7點功能我當時已經全部實現了,由於當時辭職,忙著適應新的工作,沒有繼續。 如果有哪位朋友看到了,可以給點意見,如果有需要,我可以重現花點時間做出來。也算是多年來啃了很多開源後,對開源的一點貢獻。

vim編輯器 編輯器之神

h 向左移動 j 向下移動 k 向上移動 l 向右移動 w 移動到下乙個單詞的首部 e 移動到下乙個單詞的尾部 b 移動到上乙個單詞的首部 移動到行首 移動到行尾 g 跳轉到文件的末尾 gg 跳轉到文件的開始複製操作 複製n行 nyy 2yy 移動游標到要寫入的位置,再按p 刪除操作 刪除多行 nd...

編輯器之神 vim編輯器

vi編輯器是所有unix及linux系統下標準的編輯器,類似於windows系統下的notepad 記事本 編輯器,由於在unix及linux系統的任何版本,vi編輯器是完全相同的,因此可以在其他任何介紹vi的地方都能進一步了解它,vi也是linux中最基本的文字編輯器,學會它後,我們將在linux...

(二)vi編輯器 字元編輯器

vi編輯器工作模式 分為編輯模式 插入模式 向檔案中寫資料。模式之間切換 i 進入編輯模式,游標在當前位置 a 進入編輯模式,游標向後移動乙個字元 鍵 1 儲存 w 2 強制儲存 w 3 退出 q 4 強制退出 q 5 儲存並退出 wq 或 x 6 強制儲存並退出 wq 或 x 7 貼上 p 8 複...