# MiniCode **Repository Path**: lily05/mini-code ## Basic Information - **Project Name**: MiniCode - **Description**: A group homework of some ZJUers not complete, do not reference - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-27 - **Last Updated**: 2024-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MiniCode #### 介绍 A group homework of some ZJUers ## 大致结构 [ui] 创建窗口 标题 菜单 { 文件{新建|Ctrl+N,打开|Ctrl+O,保存|Ctrl+S,关闭|Ctrl+W} [ddl:6.4] 编辑{撤销|Ctrl+Z,重做|Ctrl+Y,复制|Ctrl+C,剪切|Ctrl+X,黏贴|Ctrl+V,查找|Ctrl+F,替换|Ctrl+H} [ddl:6.4] 运行{编译|Ctrl+G,运行|Ctrl+R} //允许放弃 终端|Ctrl+T //唤出一个终端窗口并cd到打开文件所在的目录 [ddl:6.11] 帮助|Ctrl+P [ddl:6.11] } 左侧栏:按文件树展开成列表的形式显示当前目录下的文件 //允许放弃 [file] if(找到了最近打开文件的记录) 打开最近打开的文件 [ddl:6.11] else 显示空白窗口,等待新建或打开 //新建文件时要求输入文件名,并默认保存在当前目录下 新建 [ddl:5.28] 打开 [ddl:6.4] [ui] 初始化文本框及内容 [ddl:5.28] [edit] [ddl:6.11] ##语法高亮规则: 关键字 {char, double, float, int, short, long, unsigned, signed, struct, union, void, enum}, for, do, while, break, continue, if, else, goto, switch, case, default, return, auto, extern, register, static, const, sizeof, typedef, volatile 紫色 \/ 标识符 变量关键字后、无括号时注册,非字符串内出现 蓝色 \/ 编译预处理 #开头的行 橙色 \/ 函数名 变量关键字后、无括号时注册,非字符串内出现 黄色 \/ 注释 非字符串内出现,//后或/*中间*/ 绿色 \/ 字符串 非注释中,"'中间'" 橙色 \/ 不太对劲的标红色 彩虹花括号 按分级从外到内:红色,橙色,黄色,绿色,青色,蓝色,紫色 X 其余符号为黑色 ##操作的撤回存储 struct operation { long line_num; string origin; struct operation *front; struct operation *behind; } ##剪贴板的设计 一个字符串 ##键盘回调 回车键:在光标下新建一行,原本行光标后的内容转移到下一行,自动缩进 左右键:在本行内移动光标,若到端点,则上移/下移一行 上下键:保持光标横坐标,上移/下移一行,若目标行的最大长度不够,则移动到行位 快捷键若干 6.4 鼠标坐标转换 -> 行对象的新建,修改,删除与显示 行对象 { 行文本 上一行、下一行的指针 选中数组,长度等于行文本 } 选中函数 文件树 main menu line file op 6.6 meeting 上下移动 基于光标 鼠标定位 -> 光标 选中函数 基于光标 键盘回调 剪贴板和操作栈 \/ 不计划支持鼠标滚轮 光标移动直上直下 分摊实验报告 6.8 meeting 对剪贴与撤回的处理 insert() have_n() cut() color() 光标进入line.c 记得实时push 6.10 meeting 鼠标坐标转换 \/ 光标闪动 todo ma 选中 字变色 改color render 选中 clor ??? backup Ctrlz fu report