Popush之Haskell語言支持——傅展升

這個任務總的來講有兩個部分,其一是添加編譯及運行命令語句,其二是把hs文件設爲Popush系統的可運行文件。兩個部分最困難的地方實際上是找出該修改代碼的地方。git

第一個部分我是經過逐個文件略看,發現models/runner.js裏的一個switch語句很是顯眼,內容也跟編譯命令十分相似,因而詳細閱讀這個文件的代碼仿照其餘case的內容增長了haskell的編譯及運行命令。github

第二個部分的代碼都在static裏,這個文件夾裏存放着一個Readme.txt,這使個人代碼定位至關快速,要修改的地方縮小到static/js/room下。經過閱讀run.js後就能定位到要修改的地方就是app.RunableExt這個數組,最後經過編輯器的尋找功能定位到data.js,把app.RunableExt數組中加入’hs’後就能點擊運行按鈕。數組

除此之外,文本編輯器能語法高亮也是一個很重要的功能之一。在修改data.js的同時會發現這個文件中同時存在着兩個很是顯眼的object:app.languageMap和app.modeMap。追尋這兩個object調用的地方能夠找到room.js中的一句這樣的語句:CodeMirror.autoLoadMode(editor,app.languageMap[ext] || '');。一開始我覺得這個CodeMirror是Backbone.js的東西,而後我發現這個原來是一個插件,最後經過閱讀CodeMirror給出的說明文檔後在app.languageMap和app.modeMap這兩個object中加上相應的語句後就能實現語法高亮的功能。app

 

收穫體會:編輯器

1.       Readme.txt這個文檔對我幫助很大。在一個較大的項目中加入相似Readme.txt這種說明目錄結構的文檔對閱讀代碼者是一個極大的幫助。插件

2.       懂得在命令行中編譯代碼並執行很重要。這個對於此次任務來講是一個必須的條件。命令行

3.       第一次使用github配合git進行版本管理,感受整個修改過程進行得井井有理,組員間更新代碼也方便得多。文檔

4.       原來也想把haskell源代碼的圖示也更新一下,最後沒找到合適而又好看的圖示……it

相關文章
相關標籤/搜索