Board logo

Subject: 关于”代码格式化“功能的一些建议 [Print This Page]

Author: hq200306    Time: 2018-11-12 15:19     Subject: 关于”代码格式化“功能的一些建议

代码格式化功能做得不错,参考一下Gexpert中代码格式功能,需要点改进
1、如果执行代码格式化前后的源码没有变化时,可以忽略此次的操作,我下了1.1.5.949_Unstable源码,我在CnCodeFormatterWizard的850行,加了一语句,这样就可以跳过,
        if Res <> nil then
        begin
          //我加的代码
          if TrimRight(Src) = TrimRight(string(res)) then
          begin
            exit;
          end;
2.如果一行代码比较长,我的代码习惯,自己分行,便于阅读,如果按cnpack里的”代码格式化设置“窗口的”自动换行于“的设置,要么合并到一行,要么重组我写的代码,虽然逻辑真确,但影响阅读习惯,我的想法:1、保留我自己的代码分行;2、次行代码缩进还是要对齐
Author: Passion    Time: 2018-11-15 19:45

第一点我们已经加上了。

第二点目前实现起来由于架构所限还有较大的困难,不好办。
Author: hq200306    Time: 2018-11-15 20:14     Subject: 回复 #2 Passion 的帖子

好的,谢谢。关于第二点仅是代码习惯问题,如果有时间的话,改进一下,比如下面代码,用现在cnpack的代码格式化功能,格式一下,会达不到以下效果

tmpSql := 'select * from abc'
  + #13 + 'where f1=:f1'
  + #13 + 'and f2=:f2'
  + #13 + 'order by f1';


格式化后:要么合并到一行,要么没按我的设想换行,Gexpert的格式化代码时,保留原来的换行

[ 本帖最后由 hq200306 于 2018-11-15 20:21 编辑 ]
Author: Passion    Time: 2018-11-16 13:57

这个功能我想想先。

目前只能暂时以{(*}和{*)}将这段代码括住,以不格式化。
Author: hq200306    Time: 2018-11-16 14:40

我想,一行语句,分多行写时格式化的计算逻辑是:
1、吃掉空行;
2、保留多行;
3、次行缩进,;
其它的运算符等按原来的方法格式化

[ 本帖最后由 hq200306 于 2018-11-17 11:56 编辑 ]




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0