在Android源码中,通过AIDL生成的I**.java文件里没有缩进,比如IPowerManager.java
也许Google的本意是这些代码不是给人看的。
Construct the stub at attach it to the interface.
但有时候我们还是需要查看下这些code
现在考虑如何实现代码缩进,传统和正式的实现需要用到编译原理中的语义分析处理。
这里我们进行一种简易的实现,通过花括号{}的个数设置缩进的尺寸
使用一个变量保持缩进数值,遇到{ 就加1, 遇到} 就减1
然后按行重写文件即可。
这里采用Python来进行实现
def main():
icount = 0
file = "f.txt"
outfile = open("out.txt", 'w')
infile = open(file, 'r')
for line in infile:
if line.find("}") >= 0:
icount -= 1
outfile.write(preStr(icount) + line)
if line.find("{") >= 0:
icount += 1
#outfile.write(preStr(icount) + line)
infile.close()
outfile.close()
def preStr(i):
ret = ""
if i <= 0:
return ""
for e in range(i):
ret += " "
return ret
main()