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. Qt Creator快捷键

    简介 Qt Creator中提供了各种快捷键来加快开发进程. 如果需要查看或自定义快捷键,选择工具->选项->环境->键盘.快捷键按类别列出,可以在过滤器(Filter)处输入命令名 ...

  2. js如何判断一个对象是不是Array

    typeof 操作符 对于Function, String, Number ,Undefined 等几种类型的对象来说,他完全可以胜任,但是为Array时 var arr=new Array(&quo ...

  3. CodeForces Round #298 Div.2

    A. Exam 果然,并没有3分钟秒掉水题的能力,=_=|| n <= 4的时候特判.n >= 5的时候将奇数和偶数分开输出即可保证相邻的两数不处在相邻的位置. #include < ...

  4. HDU 2544 最短路【Bellman_Ford 】

    题意:给出n个节点,m条边,问从起点到终点的最短距离 用bellman_ford,注意是无向图 初学bellman_ford= =一点点理解 因为dijkstra是每次用集合里面的点去更新它们所连接的 ...

  5. JavaScript——关于字符串的replace函数中的function函数的参数

    <!DOCTYPE> <html> <head> </head> <body> <script type="text/jav ...

  6. 理解ASP.NET MVC的路由系统

    引言 路由,正如其名,是决定消息经由何处被传递到何处的过程.也正如网络设备路由器Router一样,ASP.NET MVC框架处理请求URL的方式,同样依赖于一张预定义的路由表.以该路由表为转发依据,请 ...

  7. hihoCoder #1174 : 拓扑排序·一 (判断循环图)

    G++ 261ms 13MB 题意: 给出n门课程的修读所需要的前置课程的关系,按理说应该是个拓扑图,但是因为某些原因导致了混乱,所以有可能不是一个拓扑图.现在的问题是,判断该图是否为一个拓扑图(即无 ...

  8. 记录一次Spring boot 搭建框架连接Mysql数据库注解事务不回滚的故障

    搭建了一个新框架,使用了spring boot 替换以简化原来繁杂的spring配置,使用Spring注解管理事务,持久层使用mybatis. 连接mysql数据库完成项目的过程中发现不支持事务,因为 ...

  9. web.xml整合s2sh内容

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...

  10. ecshop 广告位固定

    不知道ECSHOP用户们发现没有,如果在一个广告位中添加多个广告图片, 在前台显示的时候,每刷新一次,图片的显示顺序就会随机变化一次. 注:如果给广告位只添加一个图片是没有这种问题的. 现在的问题是: ...