c++builder 代码输入助手

指针箭头、指针符号-> 输入太麻烦

java、c#、delphi 语言里,输入一个字符点.就可以弹出代码提示窗口。很是方便。

c++语言,输入->,需要按3个键才可以弹出,能否输入一个字符自动替换为->呢,如此就方便输入了。

比如:输入一个字符'自动替换为c++的指针符号->

那么代码输入编写速度提高很多,找一个不常用的字符按键代替这3个输入的。

cnpack>ide enhancements>setttings>editor enhancement>other>

auto input matched bracket and quote {} () "" ''

通过这个选项,可以自动输入后面的字符,能否实现呢?

CnSrcEditorEnhance>chkAutoBracket

btQuote:
begin
CnOtaMovePosInCurSource(ipCur, , -); //-1
CnOtaEditDelete();
CnOtaInsertTextToCurSource('->'); //''''
end;
btDitto: CnOtaInsertTextToCurSource('"');
end; CnOtaMovePosInCurSource(ipCur, , ); //-1

输入'

删除',插入->

功能已经实现,如何弹出代码提示框呢?

alt+Space 激活弹出代码提示窗口,是发消息还是参考cnpack输入2个字符激活代码提示窗口呢?

1、2个字符弹出的是cnpack的窗口。不合适。

2、cnpack>Editor Enhancements settings>Code Editor>Add a CodeCompletion HotKey (Alt+Space),看看这个快捷键如何调用invoke激活代码输入助手的。

最终借助方法2找到解决方法了。

调用IOTAEditActions的CodeCompletion方法,弹出代码提示窗口,代码自动完成功能!

change code cnwizards\Source\SrcEditorEnhance\CnSrcEditorKey.pas

编译后的dll放到

D:\Program Files (x86)\CnPack\CnWizards

procedure TCnSrcEditorKey.ExecuteInsertCharOnIdle(Sender: TObject);
var
EditView: IOTAEditView;
awinControl:TWinControl;
begin
if (FAutoMatchType = btNone) or (FRepaintView = ) then
Exit;
EditView := CnOtaGetTopMostEditView;
case FAutoMatchType of
btBracket: CnOtaInsertTextToCurSource(')');
btSquare: CnOtaInsertTextToCurSource(']');
btCurly: CnOtaInsertTextToCurSource('}');
btQuote:
begin
if IsCpp( EditView.Buffer.FileName ) then
begin
CnOtaMovePosInCurSource(ipCur, , -); //-1
CnOtaEditDelete(); awinControl:=CnOtaGetCurrentEditControl;
PostMessage(awinControl.Handle,WM_KEYDOWN,VK_RETURN,);
PostMessage(awinControl.Handle,WM_KEYUP,VK_RETURN,);
IOTAEditView(FRepaintView).Paint;
Application.ProcessMessages; CnOtaInsertTextToCurSource('->'); //ksr ''''
end
else
CnOtaInsertTextToCurSource('''');
end;
btDitto: CnOtaInsertTextToCurSource('"');
end; if (FAutoMatchType = btQuote) and IsCpp( EditView.Buffer.FileName ) then
begin
CnOtaMovePosInCurSource(ipCur, , ); //-1 ksr if Assigned(EditView) then
(EditView as IOTAEditActions).CodeCompletion(csCodeList or csManual);
end
else
CnOtaMovePosInCurSource(ipCur, , -); IOTAEditView(FRepaintView).Paint;
end;

真正输入字符 ' 的时候把auto input matched bracket and quote功能关掉就可以了。

爽!

c++builder的福音啊!!!

能否连续按'在弹出助手界面再输入'能弹出当前选择的行,再输入'能选择当前行并关闭当前助手界面再继续根据选择又弹出助手界面,连续性??

先发送个esc键。

ShowIDECodeCompletion

http://docwiki.embarcadero.com/RADStudio/XE8/en/Code_Insight
http://docwiki.embarcadero.com/RADStudio/XE8/en/Code_Completion
http://edn.embarcadero.com/article/27913
http://delphi.about.com/od/beginners/l/aa051203a.htm
http://codeverge.com/embarcadero.delphi.ide/delphi-xe-code-insight/1057944

c++builder 代码输入助手的更多相关文章

  1. 提升c++builder 代码输入流畅度的配置

    提高c++builder 代码输入流畅度 1.输入指针的函数名后,识别函数参数移动光标到括弧内,此功能太慢,有明显延迟,建议关闭.关闭以后,输入函数名不会自动添加(),需要自己手动输入括弧了,不过速度 ...

  2. 解决“无法连接到Python代码运行助手。请检查本机的设置”问题

    廖雪峰老师python课程里有个代码运行助手,可以让你在线输入Python代码,然后通过本机运行的一个Python脚本来执行代码,很方便的一个脚本工具,但是很多人用过之后出现了这样的提示:“无法连接到 ...

  3. Visual studio智能感知挡住了当前代码输入行

    AssistX->Listboxes->Enable Visual Assist completion, suggestion and member list in .. 如果勾选了该项就 ...

  4. 发布代码小助手V2.1发布了——Code2HTML工具

    设计起源: 新浪博客似乎没有插入代码的功能,所以不得不用打空格的方法格式化代码.而且没法显示行号. 描述: 发布代码小助手用python和Tkinter开发,可以在任何常见操作系统上运行.主要用于在不 ...

  5. code_analyzer(代码分析助手)

    软件名: code_analyzer 使用c语言 pcre正则库分析源码文件,包括文件中的头文件.宏定义.函数. 用途: 无聊时,可以用来打发下时间. 演示: 对于本源程序的分析结果如下: ##### ...

  6. Idea 自定义快捷代码输入 如syso => System.out.println()

    前言 之前一直用的Eclipse System.out.println()的快捷代码输入 是 syso,但是在Idea 不好使用了,后来搜索了一番才知道,在Idea中的快捷输入是 sout,这里我就想 ...

  7. C++Builder 代码编辑器 回车自动补充括弧

    两大问题 括弧和折叠 一.括弧 XE7,回车,自动补充括弧} 好用,有时候不准确,代码量多,不知道什么原因就引起错误,总是多一个括弧,一回车就加一个括弧,都不敢回车写代码了,怎么关闭此选项? 找到了, ...

  8. 例题:计算运费。c#语言基础,比较简单。看代码输入格式和方法。同样方法可以做一个 出租车打车的程序

    while (true) { Console.WriteLine("请输入行李重量"); double k = Convert.ToDouble(Console .ReadLine ...

  9. 代码代码:输入两个正整数m和n,求其最大公约数和最小公倍数。15 20 5

    import java.util.Scanner; //输入两个正整数m和n,求其最大公约数和最小公倍数.15 20 5 public class Test { public static void ...

随机推荐

  1. [POJ3061]Subsequence(二分,前缀和)

    题目链接:http://poj.org/problem?id=3061 题意:给一个长为n的数列和整数s,求一个连续的子序列,使得这个子序列长度最短并且不小于这个整数s. 统计[1~i]的子序列和su ...

  2. the specified child alread has a parent

    用 TestFragment   extends  Fragment     @Override     public  View onCreateView(LayoutInflater inflat ...

  3. CodeForces 378C Maze (DFS)

    题目链接 题意:给一个由“.”组成的联通区域,求再添加k个‘#'以后还是联通区域的方案. 分析:做题的时候犯二了,用DFS,一直搜到边缘,然后从边缘依次往回 回溯,回溯的过程中填充’#‘ 一直填充k个 ...

  4. 【Android】 PopupWindow使用小结

        PopupWindow的很多用法网上比较多,我就不做过多解释了,只说下可能会遇到的问题,以及解决办法: 1.PopupWindow中的listview无响应 这个主要是因为show写在了set ...

  5. 使用@RequestParam绑定请求参数到方法参数

    @RequestParam注解用于在控制器中绑定请求参数到方法参数.用法如下:@RequestMapping public void advancedSearch(   @RequestParam(& ...

  6. git subtree有效管理公共第三方lib

    如果你的项目中有很多第三方的lib,你希望使用它,并且也希望可能对该lib做修改并且贡献到原始的项目中去,或者你的项目希望模块化,分为几个repo单独维护,那么git subtree就是一个选择.gi ...

  7. 漫游Kafka实现篇之消息和日志

    消息格式 消息由一个固定长度的头部和可变长度的字节数组组成.头部包含了一个版本号和CRC32校验码. /** * 具有N个字节的消息的格式如下 * * 如果版本号是0 * * 1. 1个字节的 &qu ...

  8. openerp 7 在ubuntu上设置开机启动

    我们要让openerp开机运行起来. 第一步,先进入系统目录: cd /etc/init.d 第二步,创建文件.命名为openerp-server sudo vi openepr-server 第三步 ...

  9. 转:asmx迷10分钟升级成wcf熟手指南

    前言:本文旨在帮助从未接触过wcf(.svc文件)的webservice开发人员,快速将传统的webService/asmx技术迁移到wcf.高手就不用浪费时间往下看了:) 以下所有操作均为vs201 ...

  10. UVALive 3989 Ladies' Choice(稳定婚姻问题:稳定匹配、合作博弈)

    题意:男女各n人,进行婚配,对于每个人来说,所有异性都存在优先次序,即最喜欢某人,其次喜欢某人...输出一个稳定婚配方案.所谓稳定,就是指未结婚的一对异性,彼此喜欢对方的程度都胜过自己的另一半,那么这 ...