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

这个任务总的来说有两个部分,其一是添加编译及运行命令语句,其二是把hs文件设为Popush系统的可运行文件。两个部分最困难的地方其实是找出该修改代码的地方。

第一个部分我是通过逐个文件略看,发现models/runner.js里的一个switch语句非常显眼,内容也跟编译命令十分类似,于是详细阅读这个文件的代码仿照其他case的内容增加了haskell的编译及运行命令。

第二个部分的代码都在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中加上相应的语句后就能实现语法高亮的功能。

 

收获体会:

1.       Readme.txt这个文档对我帮助很大。在一个较大的项目中加入类似Readme.txt这种说明目录结构的文档对阅读代码者是一个极大的帮助。

2.       懂得在命令行中编译代码并执行很重要。这个对于这次任务来说是一个必须的条件。

3.       第一次使用github配合git进行版本管理,感觉整个修改过程进行得井然有序,组员间更新代码也方便得多。

4.       原来也想把haskell源代码的图示也更新一下,最后没找到合适而又好看的图示……

posted @ 2014-10-07 21:03  疯狂输出  阅读(184)  评论(0编辑  收藏  举报