首页 > 其他分享 >完善lazarus中文代码补全功能

完善lazarus中文代码补全功能

时间:2024-09-20 12:23:58浏览次数:1  
标签:Completion 中文 补全 .. TextS2 TextS lazarus FEditor

当lazarus使用中文变量等代码补全时列表没对应的中文变量的:

 解决方法:
打开相应文件,添加红字代码,修改后重新编译lazarus就可以。

1、\lazarus\ide\wordcompletion.pp
找到procedure InitCharTable;(lazarus 3.4在63行)
procedure InitCharTable;
var c:char;
begin
  for c:=low(char) to high(char) do
    case c of
      'a'..'z','A'..'Z','_',#$80..#$FF:CharTable[c]:=ctWordBegin;
      '0'..'9':CharTable[c]:=ctWord;
    else CharTable[c]:=ctNone;
    end;
end;

2、\lazarus\ide\sourceeditor.pp
找到procedure TSourceEditor.StartWordCompletionBox;(lazarus 3.4在5420行)

procedure TSourceEditor.StartWordCompletionBox;
var
  TextS: String;
  LogCaret: TPoint;
  i: Integer;
  TextS2: String;
  Completion: TSourceEditCompletion;
begin
  if (FEditor.ReadOnly) then exit;
  Completion := Manager.DefaultCompletionForm;
  if (Completion.CurrentCompletionType<>ctNone) then exit;
  Completion.CurrentCompletionType:=ctWordCompletion;
  TextS := FEditor.LineText;
  LogCaret:=FEditor.LogicalCaretXY;
  Completion.Editor:=FEditor;
  i := LogCaret.X - 1;
  if i > length(TextS) then
    TextS2 := ''
  else begin
    while (i > 0) and (TextS[i] in ['a'..'z','A'..'Z','0'..'9','_',#$80..#$FF]) do
      dec(i);
    TextS2 := Trim(copy(TextS, i + 1, LogCaret.X - i - 1));
  end;
  Completion.Execute
    (TextS2, Manager.GetScreenRectForToken(FEditor, FEditor.CaretX-length(TextS2), FEditor.CaretY, FEditor.CaretX-1));
end;

修改后中文也可以使用代码补全功能(Ctrl+W):

 

标签:Completion,中文,补全,..,TextS2,TextS,lazarus,FEditor
From: https://www.cnblogs.com/qiufeng2014/p/18422285

相关文章

  • 【效率爆棚!Midjourney中文版,让你的创意如虎添翼!】
    Midjourney中文版是一款专为国内用户设计的图像生成与编辑平台,它不仅继承了国际版的强大功能,还针对国内网络环境和使用习惯进行了特别优化。这不仅是一款工具,更是每位创作者梦想中的魔法笔,将你的思绪与想象,瞬间编织成一幅幅令人惊叹的画作。MidjourneyAI超强绘画(原生态系统......
  • 探索无限创意,尽在Midjourney中文版!
    在这个充满想象的时代,Midjourney中文版为您打开了一扇通往艺术新世界的大门。无需繁复的绘画技巧,无需漫长的学习过程,只需简单的文字描述,即可让您的创意瞬间绽放。MidjourneyAI超强绘画(原生态系统)用户端:AiLoadinghttps://www.mjdiscord.com项目详细介绍飞书文档:Docshttp......
  • Gephi 0.9.2中文版百度云下载(附教程)
    如大家所了解的,Gephi常用于各种图形和网络的可视化和探索,是最受欢迎的网络可视化软件之一。在生物科学领域,常用于基因共表达网络、蛋白互作网络、微生物相互关系网络等等类似的网络图形绘制。目前用的比较多的版本为Gephi0.9.2,下面一起来看看、了解和熟悉这款实用工具吧!Gep......
  • Bandicam简体中文版下载与安装百度网盘资源
    如大家所了解的,Bandicam是一款功能强大且高效的视频录制工具,录制出来的视频体积较小且内容清晰度较高,对于我们工作或学习、休闲时录屏、录游戏都非常合适。对于初次使用的用户来说,Bandicam也是比较好上手的,可以全屏幕录制,也可以自定义录制区域,还可以在录制时添加自定义的logo,......
  • DevExpress WinForms中文教程:Data Grid - 如何设置视图和列外观?
    本教程将带您了解用于更改网格元素外观的外观设置,在哪里可以找到视图或单个列的这些设置,以及如何更改视图的绘制样式,以便您可以自定义主题绘制的元素。P.S:DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构......
  • 复旦大学的第一本大模型中文书真的不要太强-《大规模语言模型 从理论到实践》
    复旦大学NLP实验室的大牛教授们出书了!国内第一本全面介绍大语言模型的中文书,让普通人也能感受AI的魔力!......
  • 几何透视图像校正处理软件 DxO ViewPoint v4.12 中文授权版
    DxOViewPoint是DxOLabs旗下一款行业领先级几何透视图像校正处理软件。DxOViewPoint让您可以完全掌控线条、角度和形状。调整透视、修复畸变、改变特定区域形状和校正广角拉伸,以获取精美图像。DxOViewPoint可作为独立应用程序运行,也可作为DxOPhotoLab中的工具面板以及......
  • 多协议数据库管理工具:Navicat Premium (Win&Mac) 中文特别版
    NavicatPremium是一款强大的数据库管理和开发工具,它支持多种数据库系统,包括MySQL、MariaDB、MongoDB、SQLServer、Oracle、PostgreSQL和SQLite。这款软件为用户提供了一个直观的图形用户界面,使得创建、组织、访问和共享信息变得安全而简单。NavicatPremium的主要特点......
  • 修正中文控件名称时IDE代码提示出错的Bug
    根据之前的方法增加中文控件名称后发现中文控件名称IDE代码提示”Error:identifiernotfound:“,不能显示控件的方法/属性。 解决方法:打开lazarus\components\codetools\customcodetool.pas添加红色代码部分(lazarus3.4在第1753行)//readatomifIsStringConstantthe......
  • DOS命令中文乱码一行命令解决
    使用bat命令,创建TXT直接强制改后缀BAT,这导致一个中文编码问题。问题使用bat命令,我习惯于创建TXT直接强制改后缀BAT,这导致一个中文编码问题,TXT的默认一般UTF-8编码,而DOS是ASCII编码。解决方案在写BAT命令内容之前加一行:chcp65001我的感觉,这和python不是很像吗#coding:utf......