DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: laidabin
今日帖子: 5
在线用户: 36
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2021/9/23 8:42:58
标题:
D11语法支持二进制整数前缀%, 代码格式化却给分开,结果编译失败 浏览:2232
加入我的收藏
楼主: A:=A and %10111111;
生生给格式化成
A:=A and % 10111111

等11.0.1修复?
----------------------------------------------
-
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/23 8:51:56
1楼: 可以用CnPack的代码格式化试一试,最新每日构建版1052。

http://www.cnpack.org/downbuilds.php?lang=zh-cn
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 roadrunner (roadrunner) ★☆☆☆☆ -
盒子活跃会员
2021/9/23 8:54:08
2楼: 代码自动格式化从很多个版本以前就不能用了,从来跟不上新语法,所以官方就没想过还有人会用这个功能吧
----------------------------------------------
-
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2021/9/23 9:03:27
3楼: 还是Cnpack的ctrl+W好使
----------------------------------------------
-
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2021/9/23 9:06:18
4楼: CnPack在格式化
class operator RSFPStateRecord.Finalize(var Dest: RSFPStateRecord);
这一行的时候报错
Format Error:Symbol Expected
Current ";"
IDE自带的 ctrl+D没有报错

@cnpack
----------------------------------------------
-
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/23 9:37:38
5楼: 谢谢4楼报告,class operator我们当成了function处理,但未考虑到它还可以是无返回值的procedure形式,因此这项错误中是缺少返回值。
下一每日构建版本1053将修正此问题。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2021/9/23 10:48:26
6楼: 1053啥时时候出来? :)
----------------------------------------------
-
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/23 13:21:37
7楼: 刚火热出炉:
http://www.cnpack.org/downbuilds.php?lang=zh-cn
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 142857 (142857) ★☆☆☆☆ -
禁用账号
2021/9/23 14:35:09
8楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
男 142857 (142857) ★☆☆☆☆ -
禁用账号
2021/9/23 14:37:38
9楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
男 dede3000 (dede3000) ▲▲▲▲△ -
普通会员
2021/9/23 15:46:44
10楼: @cnpack 请问下大侠,cnvcl何时更新?
----------------------------------------------
My Delphi will go on, and on.
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/23 15:58:18
10楼: 楼上,CnPack专家包格式化时默认把编译指令当成注释,因此错误出在
{$IF CompilerVersion >= 21}PQueryServiceConfigW{$ELSE  }PQueryServiceConfig{$IFEND}; 当成注释后语法就出错了。

如果要改变这种行为,可以在格式化设置对话框里修改编译指令的处理模式,从当成注释改为只处理第一条,再重新格式化试一试。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/23 15:59:35
11楼: 10楼,github.com上有我们cnvcl的最新代码,不知具体说的更新是什么?

https://github.com/cnpack/cnvcl.git
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 142857 (142857) ★☆☆☆☆ -
禁用账号
2021/9/23 16:23:48
12楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/23 16:51:56
13楼: CnPack专家包的格式化功能有个选项,可以根据IDE编译期提供的符号列表更改代码里标识符的大小写,也在设置对话框里设置。

Delphi官方的格式化有没有这个机制还不清楚。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 142857 (142857) ★☆☆☆☆ -
禁用账号
2021/9/23 17:05:27
14楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
男 dede3000 (dede3000) ▲▲▲▲△ -
普通会员
2021/9/23 20:07:53
15楼: @cnpack

github上Packages目录里一直没看到Delphi 11的文件啊.
----------------------------------------------
My Delphi will go on, and on.
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/24 8:08:20
16楼: 这些天一直忙于D11的专家包支持,组件包工程文件没来得及处理,这两天抓紧整一下提上去。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2021/9/24 8:15:01
17楼: @142857 官方的格式化貌似会用unit第一次出现的写法为模板,所以第一次写的时候严格按照想要的大小写来写,后面应该就没问题了
----------------------------------------------
-
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2021/9/24 9:37:08
18楼: @CnPack CnWizards代码格式化里面,是不是忽略了“Keep User Line Break in Statement'的用户设置? 我代码里的空行全被ctrl+w吃掉了,并且class里面定义的函数声明前面的缩进也被吃掉,变成了这个样子(只复制粘贴了前面一部分列)
    property Device
    property ErrorC
function GetBytesWi
function SetParamet
    constructor Cre
    destructor Dest
function OpenViaSer
function OpenViaEth
function OpenViaEth
    procedure Close
function ReadModelN
----------------------------------------------
-
作者:
男 ltsmn1 (星期一) ▲▲▲▲△ -
普通会员
2021/9/24 11:35:41
19楼: 格式化后,函数声明顶格了。
此帖子包含附件:
PNG 图像
大小:12.3K
----------------------------------------------
-
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/24 13:35:07
20楼: 15楼,D110A的工程文件已提交。
18 19楼我查查问题。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/24 20:33:17
21楼: function缩进问题原来是昨天修改class operator引入的bug,按倒葫芦起来瓢。

现已修正,下一每日构建版1054集成。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/25 22:29:05
22楼: 1054出炉!
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 wuxi15 (似水·流年) ▲▲▲▲▲ -
普通会员
2021/9/26 4:05:12
23楼: 在11里,函数的参数是不提示的吗,还是说是我安装的有问题
----------------------------------------------
-
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2021/9/29 7:38:06
24楼: @cnpack 代码格式化的一个建议:对于代码中的空行,cnwizards可不可以像ide原生功能那样,去掉多余的空行只保留一个空行? 很多时候加空行就是为了分割代码段,ctrl+w后全挤一块儿了
还有就是line break,比如在函数的参数里面,在参数很多的时候,有时候为了便于阅读,会显性的加入换行,每个参数独占一行,合并了反而不方便。ide本身有个设置可以keep line break "as is"感觉就挺好

FYI
----------------------------------------------
-
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/30 8:53:28
25楼: 楼上,1、CnWizards的格式化一般会把连续出现的多个空行合并成保留一个空行。2、代码格式化专家里也有个选项可以保留语句内的换行。

如果有场合1不符合要求或2这个选项不起作用,可能是Bug,欢迎报给我们查查。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2021/9/30 9:31:17
26楼: 如果是函数体内部的空行,ctrl+W会合并保留成一个空行

但是在函数体外部,比如函数的声明位置, 全局变量的声明位置,ctrl+W会吃掉所有的空行,比如

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure Test1;
    //这里的空行会被吃掉
    procedure Test2;
  end;

var
  Form1: TForm1;
 //这里的空行会被吃掉
  A: Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  A := 1;
  //这里的空行不会被吃掉
  A := 2;
end;
----------------------------------------------
-
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/9/30 17:07:34
27楼: 1056版已修正。

在有空行的地方是否保留至少一个空行,这个选项的确是在多个地方控制的,全局var等地方是我们漏控制了,已经加上。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2021/9/30 18:23:49
28楼: 赞刘大侠
----------------------------------------------
-
作者:
男 kentty (kentty) ★☆☆☆☆ -
普通会员
2021/10/1 18:41:52
29楼: @cnpack 1056对于结构体内函数声明之间的空行还是会全部吃掉

是不是可以这样,不特意区分不同位置(可能注释区除外),遇到多个空行就压缩成一行? 我记得code formatter里面有个选项“keep user line break in statement",不选中的时候才全部吃掉

FYI
----------------------------------------------
-
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/10/1 22:36:05
30楼: 是可以全部整成这样,但记得当时做成不同地方区分开来应该是有特殊需求才这么整的,现在控制选项复杂了,不敢贸然全部改掉怕引发莫名其妙的副作用。

下个版本把结构体内的函数声明部分也处理掉。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2021/10/7 21:11:12
31楼: 1057已出。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行103.5156毫秒 RSS