C代码编辑器求教
我想做一个C代码编辑器,和Notepad差不多,也可以理解为文本编辑器,不需要实现编译功能,具有以下功能:
基本功能:
可以编辑C语言源程序
支持对源程序的高亮显示
支持代码重排版
支持代码折叠
支持当前文件函数列表和跳转
成对括号、语句块标识
支持通过外部编译器编译并运行程序(可选)
功能说明:
高亮:能够通过高亮度显示出C语言的关键字等不同的语法成分。关键字一种颜色,常量/变量等一种颜色。
重排版:在编辑程序后,通过一个命令将所有的代码重新排版,可以使用固定风格,也可以让用户选择喜欢的风格。
代码折叠:可以以语句块为单位对代码进行隐藏,譬如在某个语句块中按 c-h,则语句块的内容隐藏,并在该语句块位置显示一行提示,在此处再按 c-h,则显示语句块的内容。
函数列表:在编辑器的左侧可以显示当前文件的函数列表,当选择列表中的函数时,则自动跳转到该函数中。
括号、语句块标识:当光标移动到某个 () 或 {} 符号上时,则能用高亮的方式将括号或语句块的另一端显示出来。
编译运行程序:可以使用外部编译器如 GCC、DJGPP 等编译、链接当前的源程序,并显示编译错误。如果编译正确,则可以执行该程序。
难点
此题目的难点包括以下几个方面:
字符界面下的应用程序界面设计(若使用 Linux 可直接使用 ncurses 以降低难度)
文本文件在内存中存储的数据结构
C语言源代码的分析,程序修改时对源代码的重新分析
源代码重排版的算法
源代码折叠的渲染
调用外部编译程序
望高手指点,是什么数据结构,谢谢