CE(Code Editor)
作为使用EMACS超过十年的老用户,针对日常使用中不方便的地方,一直想给EMACS贡献一个插件,中间,专门学习了LISP,但是实在是不熟悉,写些小的函数还可以,写个大的插件还是太费力,最近刚好空了点,索性基于wxWidgets写了一个代码编辑器。 废话不多说,开始。
CE基于wxWidgets开发,在windows和linux平台下,都可以正常使用,功能完全一致。
启动方式,直接ce,或者双击:
第一次打开是这个样子
Explorer和Workspace不会同时显示,使用CTRL+W/CTRL+E相互切换。
使用Explorer和workspace可以满足基本的文件打开需求,但是文件比较多的时候,这种方式就比较低效了,推荐使用ALT +O来查找并打开文件。
可以支持模糊匹配,比如输入:
test cpp,则会匹配到Test.cpp TestAAAcpp.test
匹配规则如下:
空格隔开的多个词同时匹配,如果一个词是全小写,则不区分大小写,如果包含大写字符,则区分大小写。
查找规则如下:
如果当前显示了Workspace则在Workspace中查找。
如果当前显示了Explorer则在Explorer中当前选中的目录中查找。
如果Workspace和Explorer都不显示,则默认从当前正在编辑的文件所在的同级目录查找。
匹配列表中,使用上下键选择不同的项,使用CTRL+上下键移动选择并打开对应的文件,但是不切换键盘焦点。回车直接打开对应的文件,并切换输入焦点。
CTRL+S 保存当前正在编辑的文件。
如果文件有没有保存的修改,则标题栏上会有*号提示。
拥有键盘输入焦点的时候,标题栏会蓝色高亮显示。
CTRL+K 关闭当前正在编辑的文件。
其他各种打开的小窗口,在拥有键盘焦点的时候,统一使用CTRL+K关闭。
常规操作,不多说。
在打开文件特别多的时候,除了常规的鼠标操作来切换多个TAB之外,
还可以使用CTRL+B来快速切换文件,支持多词智能匹配。也可以选择新建一个文件。
CTRL+PAGEDOWN,切换到下一个打开的文件。
CTRL+PAGEUP切换到前一个打开的文件。
Ctrl+G可以直接跳转到特定行。
ALT+PAGEUP 直接跳转到第一行。
ALT+PAGEDOWN直接跳转到最后一行。
ALT+F4或者鼠标操作,都可以直接退出,如果有编辑过的文件没有保存,会提示保存。当前打开的所有文件,以及页面布局,当前正在查看的位置,下次重新启动,一切照旧,所以,可以在任意时候毫不犹豫的关闭CE,下次打开,一切照旧。
对于程序员来说,查找是最常用的操作了
查找规则,匹配方式,按键操作,同查找文件,查找结果,按文件名自动分组。
可以显示当前文件的所有符号,包括函数,类,枚举类型,宏定义等。 已经修改为按字母顺序排列,方便查找.
ALT+R可以查找一个符号在Workspace中的使用情况。
ALT+T可以查找一个字符串在Workspace中的使用情况。
现在只做了C/C++/JAVA的语法高亮。
可以自动识别一下内容:
关键字,类型定义,函数定义,函数参数,局部变量等。分别使用不同的颜色标记,注释中的@支持高亮,java 注释中的文档也支持高亮,不一一截图,如图:
移动光标时,会在左下角显示当前所在的函数名。
鼠标点击到任意符号,会显示对应的定义。
选中局部变量的时候,会自动替换函数内所有使用到的地方。
选中函数参数的时候,会自动替换函数参数所有使用到的地方。
其他内容,在当前{}范围内自动替换。
使用可见即可得的方式替换,替换内容实时输入,实时显示。
对于程序员来说,对齐是特别麻烦的事情,针对这个问题,专门做了优化:
回车之后,自动对齐到正确位置
在一行的任意位置按TAB键,都可以自动把当前行对齐好,不管按多少次TAB键,都不会多加多余的对齐。
选择多行内容,直接按TAB键,选中的内容自动对齐
CTRL+V 粘贴过来的内容会自动对齐,无需特别操作。
支持#预处理处折叠
支持{} 出折叠
支持(折叠
支持多行注释折叠
在代码调试过程中,经常会需要注释掉大段的代码,特别添加了这个功能:
输入(,{,“,‘,自动匹配,删除的时候自动删除不匹配项。
光标移动到({附近时,自动高亮匹配的另外一半。
代码中如果混入了中文的内容,红色背景显示。
在()中间输入;{号,自动根据情况移动到行尾,避免手动移动光标位置。
现在代码的自动补全,还只做了最基本的功能,就是补全关键字,和补全输入过的,打开的文件中出现过的内容。
自动提示类成员变量,类的成员函数,参数列表等功能还在开发。完成之后会后续再发布。
所有的代码都放在https://www.github.com/fanhongxuan/editor。