c++builder 代码输入助手
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 代码输入助手的更多相关文章
- 提升c++builder 代码输入流畅度的配置
提高c++builder 代码输入流畅度 1.输入指针的函数名后,识别函数参数移动光标到括弧内,此功能太慢,有明显延迟,建议关闭.关闭以后,输入函数名不会自动添加(),需要自己手动输入括弧了,不过速度 ...
- 解决“无法连接到Python代码运行助手。请检查本机的设置”问题
廖雪峰老师python课程里有个代码运行助手,可以让你在线输入Python代码,然后通过本机运行的一个Python脚本来执行代码,很方便的一个脚本工具,但是很多人用过之后出现了这样的提示:“无法连接到 ...
- Visual studio智能感知挡住了当前代码输入行
AssistX->Listboxes->Enable Visual Assist completion, suggestion and member list in .. 如果勾选了该项就 ...
- 发布代码小助手V2.1发布了——Code2HTML工具
设计起源: 新浪博客似乎没有插入代码的功能,所以不得不用打空格的方法格式化代码.而且没法显示行号. 描述: 发布代码小助手用python和Tkinter开发,可以在任何常见操作系统上运行.主要用于在不 ...
- code_analyzer(代码分析助手)
软件名: code_analyzer 使用c语言 pcre正则库分析源码文件,包括文件中的头文件.宏定义.函数. 用途: 无聊时,可以用来打发下时间. 演示: 对于本源程序的分析结果如下: ##### ...
- Idea 自定义快捷代码输入 如syso => System.out.println()
前言 之前一直用的Eclipse System.out.println()的快捷代码输入 是 syso,但是在Idea 不好使用了,后来搜索了一番才知道,在Idea中的快捷输入是 sout,这里我就想 ...
- C++Builder 代码编辑器 回车自动补充括弧
两大问题 括弧和折叠 一.括弧 XE7,回车,自动补充括弧} 好用,有时候不准确,代码量多,不知道什么原因就引起错误,总是多一个括弧,一回车就加一个括弧,都不敢回车写代码了,怎么关闭此选项? 找到了, ...
- 例题:计算运费。c#语言基础,比较简单。看代码输入格式和方法。同样方法可以做一个 出租车打车的程序
while (true) { Console.WriteLine("请输入行李重量"); double k = Convert.ToDouble(Console .ReadLine ...
- 代码代码:输入两个正整数m和n,求其最大公约数和最小公倍数。15 20 5
import java.util.Scanner; //输入两个正整数m和n,求其最大公约数和最小公倍数.15 20 5 public class Test { public static void ...
随机推荐
- HibernateTools实现pojo类 数据库schma mapping映射的相互转换
核心 利用HibernateTools,从POJO类,Mapping映射文件,数据库表有其中的一项,就能生成其他两项. 概述 在使用Hibernate开发系统持久层时,按照一般开发流程 1.分析业务 ...
- json和jsonp的使用格式
最近一直在看关于json和jsonp的区别和各自的用法.优缺点! 下面是我看到过解释最清楚的一片文章 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求 ...
- zoj 3329 One Person Game (有环 的 概率dp)
题目链接 这个题看的别人的思路,自己根本想不出来这种设方程的思路. 题意: 有三个骰子,分别有k1,k2,k3个面. 每次掷骰子,如果三个面分别为a,b,c则分数置0,否则加上三个骰子的分数之和. 当 ...
- Intent Flag介绍 intent.addFlags()
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); FLAG_ACTIVITY_BROUGHT_TO_FRONT 这个标志一般不是由程序代码设置的 ...
- ionic中极光推送的集成
1.到极光官网注册账号,新建应用获得appkey. 详见:https://www.jiguang.cn/app/list 2.引入jpush插件 详见:https://github.com/jpush ...
- js如何判断一个对象是不是Array
typeof 操作符 对于Function, String, Number ,Undefined 等几种类型的对象来说,他完全可以胜任,但是为Array时 var arr=new Array(&quo ...
- 51nod1537 分解
http://blog.csdn.net/qingshui23/article/details/52350523 详细题解%%%%对矩阵乘法的不熟悉.以及不会推公式 #include<cstdi ...
- Windows Tftpd32 DHCP服务器 使用
/********************************************************************* * Windows Tftpd32 DHCP服务器 使用 ...
- Java [Leetcode 96]Unique Binary Search Trees
题目描述: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For ...
- 2015-10-14 晴 tcp/ip
今天看完ping, traceroute, ip选路,动态选路协议,dup, igmp, tftp, bootp,tcp