[2008/1/11 (五) 0:48]
SourceInsight是一个非常不错的代码浏览/编辑工具,好就好在它能建立对象/函数/变量的索引,能轻松跳转到对象/函数/变量的定义处,只要这个定义的文件在你的项目里~~再加上SourceInsight独具风格的Highlight功能,用它读写代码就如快刀斩乱麻,轻松愉悦~
可是SourceInsight不支持Matlab的m源代码,俺网上搜罗一大圈,死活没找到现成可用的,只好自己动手了。
先附上我做好的MATLAB.CLF文件——也许你用得着,那就直接从俺这【】吧,成功了记得留个言,支持一下。
再顺便提一下,SourceInsight网站的Downloads栏目里可以下载到PHP、Python、Ruby等一些语言的CLF文件,如果你要用的编程语言也没有定义,可以去那里看看,实在没有,就只能学我的,自己来搞定了~~
OK,言归正传~~
首先,进入【Preferences】对话框,点击其中的【Languages】页,如图:
然后点击Add新建,输入你要支持的语言名称,如MATLAB~确定后你的语言就会出现在列表里。
接着选择你的语言,然后点Properties,这是属性页的Options:
接着,设置Comments and
Ranges——重要,注释和字符串能不能认就看他了~matlab语言用%做注释,用单引号来包裹字符串:
最后一步,最重要的,设置Custom Parsing,这里要设置函数、变量、结构的解析正则表达式!
上面这一步是耗费俺时间最长的,因为Matlab的函数申明比较怪异,可以是function variablename =
functionname(var1,var2...)格式,也可以是function functionname(var1,
var2...)格式,所以写了两个,还要分别区分~~
至于Variable和Structure就好办多了。
这还没完,你一定还记得有Keywords吧 :)
Matlab的Keywords蛮多的,我的搞法是直接从电子文档手册里把所有的keywords copy出来,然后用UltraEdit来编辑,格式如下:
%, Comment Single Line
(, Delimiter
), Delimiter
*, Operator
+, Operator
",", Delimiter
-, Operator
/, Operator
\, Operator
^, Operator
', Operator
;, Delimiter
=, Operator
>, Operator
<=, Operator
>=, Operator
==, Operator
~=, Operator
&, Operator
|, Operator
~, Operator
&&, Operator
||, Operator
{, Delimiter
}, Delimiter
[, Delimiter
], Delimiter
if, Control
else, Control
elseif, Control
switch, Control
case, Control
for, Control
while, Control
continue, Control
break, Control
try, Control
catch, Control
return, Control
otherwise, Control
persistent, Control
end, Control
global, Keyword
"function", Keyword
abs, Standard Function
accumarray, Standard Function
acos, Standard Function
acosd, Standard Function
acosh, Standard Function
acot, Standard Function
acotd, Standard Function
…………一下省略1000行~~
看清楚了哇~~Keywords有很多种的,其中for、switch、while这些属于流控,是Control,acos属于标准函数(Standard Function),+-*/是操作符(Operator),()[]{}是Delimiter。。。。Keywords弄全了,点击Languages页的按钮,然后在Keywords的窗口里Import进去就行了~~
编程愉快!
对了,今天为了申请到的空间(微软搞的一个网络硬盘,免费,1GB容量,目前还是Beta版,不对中国开放),费劲半天找到一个好帖,可以搞定,好帖地址:。