在lazarus使用中文变量等代码补全功能基础上,按以下方法就可以实现输入中文拼音首字母就可以快速代码补全功能。
代码补全功能快捷键:Ctrl+w
代码补全功能快捷键:Ctrl+w
修改步骤:
打开\lazarus\ide\wordcompletion.pp文件,修改以下2个位置,添加红色代码后,重新编译lazarus就可以。
1、在uses添加getPinYinCodes,GetPinYinCodes单元在这下载:https://www.cnblogs.com/qiufeng2014/p/18418176
unit WordCompletion; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, SynEdit,getPinYinCodes; type
2、找到 procedure AddIfMatch(const ALine, ALineUp:string; const AFirstPos, ALength: Integer);(lazarus 3.4在第145行)
procedure AddIfMatch(const ALine, ALineUp:string; const AFirstPos, ALength: Integer); var AAdd: Boolean; tmpstr:string; begin if FilterLen=0 then AAdd := True else begin AAdd := False; if CaseSensitive then begin if ContainsFilter then AAdd := MyPos(Filter, ALine, AFirstPos, AFirstPos+ALength-1)>0 else AAdd := strlcomp(PChar(@ALine[AFirstPos]),PChar(Filter),FilterLen)=0; end else begin if ContainsFilter then AAdd := MyPos(UpFilter, ALineUp, AFirstPos, AFirstPos+ALength-1)>0 else AAdd := strlcomp(PChar(@ALineUp[AFirstPos]),PChar(UpFilter),FilterLen)=0; end; end; tmpstr:=getPinYinCode(copy(ALine,AFirstPos, ALength),filter); if pos(UpperCase(filter),tmpstr)>0 then AAdd:=true; if AAdd then Add(Copy(ALine, AFirstPos, ALength)); end;
分类:
Lazarus
标签:
lazarus/fpc中文支持
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)