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 ...
随机推荐
- 配置Tomcat 中文字符集问题
找到Tomcat安装路径下的conf文件夹下的server.xml配置文件,修改配置Tomcat端口的标签"Connector",添加URIEncoding属性,代码如下: < ...
- 微信朋友圈如何同时分享(图片+文字) Android版
以下是:微信朋友圈SDK 分享图片的代码,但只能分享图片,不能分享文字,如何才能图片和文字同时分享?求各位大神指教! public class MainActivity extends Activit ...
- hdu1828(线段树+扫描线)
又知道了线段树的一种用法,除了单点更新,区间更新,还有这种在一段线段上标号但不往下推. 真是神奇 hdu1828 #include <iostream> #include <stdi ...
- Java编程思想 (1~10)
[注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第一章 对象导论 1.万物皆对象2.程序就是对象的集合3.每个对象都是由其它对象所构成 ...
- factory工厂模式
工厂方法模式 工厂方法模式概述 工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现 简单理解: 与简单工厂模式类似,简单工厂模式是一个工厂,用户将条件为 ...
- iso中AutoLayout和Autoresizing Mask的区别
•在iOS6之前,关于屏幕旋转的适配和iPhone,iPad屏幕的自动适配,基本都是由Autoresizing Mask来完成的.但是随着大家对iOS App的要求越来越高,以及今后可能出现的多种屏幕 ...
- DelegatingFilterProxy
安全过滤器链 Spring Security的web架构是完全基于标准的servlet过滤器的. 它没有在内部使用servlet或任何其他基于servlet的框架(比如spring mvc), 所以它 ...
- 摘录:官方文档对ROWID虚拟行的定义
ROWID Pseudocolumn For each row in the database, the ROWID pseudocolumn returns the address of the r ...
- Android 一步步教你从ActionBar迁移到ToolBar
谷歌的材料设计也发布了有一段时间了,包括官方的support库 相信大家也熟悉了不少,今天就把actionbar 迁移到toolbar的 经验发出来. 这个地方要注意 我用的图标都是studio里的一 ...
- linux 开机自动运行
1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /et ...