LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: jiangn

有没有把代码规范化的工具?

[复制链接]
发表于 2006-5-5 10:51:04 | 显示全部楼层
楼上这位仁兄的签名不错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-5 13:17:22 | 显示全部楼层
就是上面说的二元运算符两边加空格,逗号后面加空格,正确处理缩进,TAB和N个空格互换,注释要在单独的一行也要随代码缩进,像对函数说明的注释最好有统一的格式,用“//”或“/**/”打印整齐的表头
我的想法是把上面这些写到配置文件中,以后要改风格的话就修改配置文件
要写这个东西的话基本上就要实现词法分析器和语法分析器了
回复 支持 反对

使用道具 举报

发表于 2006-5-5 16:10:08 | 显示全部楼层
Lolita大人,我是看了你的签名后才想出这个签名的!
回复 支持 反对

使用道具 举报

发表于 2006-5-5 16:13:25 | 显示全部楼层
要写这个的确不容易,幸好神奇的indent已经能解决其中的几个难题。

1、TAB和N个空格互换的相关参数如下:
  1.        -nut, --no-tabs
  2.            Use spaces instead of tabs.
  3.        -tsn, --tab-sizen
  4.            Set tab size to n spaces.
  5.        -ut, --use-tabs
  6.            Use tabs. This is the default.
复制代码
2、注释要在单独的一行也要随代码缩进
  1.        -cn, --comment-indentationn
  2.            Put comments to the right of code in column n.
  3.        -cdn, --declaration-comment-columnn
  4.            Put comments to the right of the declarations in column n.
  5.        -dn, --line-comments-indentationn
  6.            Set indentation of comments not to the right of code to n spaces.
复制代码

3、注释最好有统一的格式,用“//”或“/**/”打印整齐的表头
  1.        -nsc, --dont-star-comments
  2.            Do not put the `*´ character at the left of comments.
  3.        -sc, --start-left-side-of-comments
  4.            Put the `*´ character at the left of comments.
  5.        -lcn, --comment-line-lengthn
  6.            Set maximum line length for comment formatting to n.
复制代码

上面给出的这几个参数比较常用,应该可以基本满足你的要求了。关于注释的参数比较多,我一时也不是很清楚其具体作用,你可以在man indent里查找comment,看看能不能符合你的要求。

4、正确处理缩进。

这是indent的强项,有很多微调选项,看man吧。


这样一来,要自己编程解决的问题只剩下“二元运算符两边加空格,逗号后面加空格”了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-5 16:56:27 | 显示全部楼层
老实说我没用过indent, 只是知道有这么个东东,我再看看man好了

再问一下,那个代码是windows下的,所以换行是CRLF,有什么工具可以转成LF的,我只知道ftp用ascii传文件的话可以转
回复 支持 反对

使用道具 举报

发表于 2006-5-5 17:41:31 | 显示全部楼层
Post by jiangn
老实说我没用过indent, 只是知道有这么个东东,我再看看man好了

再问一下,那个代码是windows下的,所以换行是CRLF,有什么工具可以转成LF的,我只知道ftp用ascii传文件的话可以转

dos2unix都可以转的
或者一行perl代码也可以做到,只是有一下子想不起来这行代码了:sorry
回复 支持 反对

使用道具 举报

发表于 2006-5-5 17:53:38 | 显示全部楼层
vim 中
:set fileformat=unix/dos/mac
:w
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-5 17:56:53 | 显示全部楼层
楼上这个简单
回复 支持 反对

使用道具 举报

发表于 2006-5-5 18:02:50 | 显示全部楼层
Post by jiangn
楼上这个简单

但是你要处理大量的文件的时候,还是dos2unix或者类似的工具,进行编程(包括bash编程)处理来得方便
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表