diff --git a/NEWS.md b/NEWS.md index 0fa9d868..397157af 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,7 @@ +Version 0.6.7 + - fix: debugger won't exit when the program has exited. + - adjust: the max value of the debug console's vertical scrollbar. + Version 0.6.6 - fix: crash when create new file - implement: two editor view diff --git a/RedPandaIDE/RedPandaIDE_zh_CN.qm b/RedPandaIDE/RedPandaIDE_zh_CN.qm index 1a3708fe..d1bae071 100644 Binary files a/RedPandaIDE/RedPandaIDE_zh_CN.qm and b/RedPandaIDE/RedPandaIDE_zh_CN.qm differ diff --git a/RedPandaIDE/RedPandaIDE_zh_CN.ts b/RedPandaIDE/RedPandaIDE_zh_CN.ts index 9bd17145..6890f7eb 100644 --- a/RedPandaIDE/RedPandaIDE_zh_CN.ts +++ b/RedPandaIDE/RedPandaIDE_zh_CN.ts @@ -921,10 +921,10 @@ Are you really want to continue? - - - - + + + + Error 错误 @@ -939,55 +939,55 @@ Are you really want to continue? 另存为 - + The text to be copied exceeds count limit! 要复制的内容超过了行数限制! - + The text to be copied exceeds character limit! 要复制的内容超过了字符数限制! - + The text to be cut exceeds count limit! 要剪切的内容超过了行数限制! - + The text to be cut exceeds character limit! 要剪切的内容超过了字符数限制! - + Print Document 打印文档 - - - + + + Ctrl+click for more info Ctrl+单击以获取更多信息 - - + + Symbol '%1' not found! 未找到符号'%1'! - + Break point condition 断点条件 - + Enter the condition of the breakpoint: 输入当前断点的生效条件: - + Readonly 只读 @@ -2686,7 +2686,7 @@ Are you really want to continue? - + Issues 编译器 @@ -2889,8 +2889,8 @@ Are you really want to continue? - - + + Compile 编译 @@ -3334,7 +3334,7 @@ Are you really want to continue? - + Clear all breakpoints 删除所有断点 @@ -3435,7 +3435,7 @@ Are you really want to continue? - + Rename Symbol 重命名符号 @@ -3456,16 +3456,26 @@ Are you really want to continue? - + Export As RTF 导出为RTF - + Export As HTML 导出为HTML + + + Move To Other View + 移动到其他视图 + + + + Ctrl+M + + File Encoding @@ -3782,118 +3792,118 @@ Are you really want to continue? 已自动保存%1个文件 - + Save project 保存项目 - + The project '%1' has modifications. 项目'%1'有改动。 - + Do you want to save it? 需要保存吗? - + Do you really want to clear all breakpoints in this file? 您真的要清除该文件的所有断点吗? - + New project 新建项目 - + Close %1 and start new project? 关闭'%1'以打开新项目? - + Folder not exist 文件夹不存在 - + Folder '%1' doesn't exist. Create it now? 文件夹'%1'不存在。是否创建? - + Can't create folder 无法创建文件夹 - + Failed to create folder '%1'. 创建文件夹'%1'失败。 - + Save new project as - + Red panda Dev-C++ project file (*.dev) 小熊猫Dev-C++项目文件 (*.dev) - + New project fail 新建项目失败 - + Can't assign project template 无法使用模板创建项目 - + Add to project 添加到项目 - + Rename Error 重命名出错 - + Symbol '%1' is defined in system header. 符号'%1'在系统头文件中定义,无法修改。 - + New Name 新名称 - - + + Replace Error 替换出错 - + Can't open file '%1' for replace! 无法打开文件'%1'进行替换! - + Contents has changed since last search! 内容和上次查找时不一致。 - + Rich Text Format Files (*.rtf) RTF格式文件 (*.rtf) - + HTML Files (*.html) HTML文件 (*.html) @@ -3901,12 +3911,12 @@ Are you really want to continue? - - - - - - + + + + + + Error 错误 @@ -3916,75 +3926,75 @@ Are you really want to continue? 项目历史 - + File '%1' was changed. 磁盘文件'%1'已被修改。 - + Reload its content from disk? 是否重新读取它的内容? - + File '%1' was removed. 磁盘文件'%1'已被删除。 - + Keep it open? 是否保持它在小熊猫C++中打开的编辑窗口? - + Open 打开 - + Compile Failed 编译失败 - + Run Failed 运行失败 - - + + Confirm Convertion 确认转换 - - + + The editing file will be saved using %1 encoding. <br />This operation can't be reverted. <br />Are you sure to continue? 当前编辑器中的文件将会使用%1编码保存。<br />这项操作无法被撤回。<br />你确定要继续吗? - + New Watch Expression 新监视表达式 - + Enter Watch Expression (it is recommended to use 'this->' for class members): 输入监视表达式 - + Parsing file %1 of %2: "%3" (%1/%2)正在解析文件"%3" - - + + Done parsing %1 files in %2 seconds 完成%1个文件的解析,用时%2秒 - + (%1 files per second) (每秒%1个文件) @@ -4751,12 +4761,12 @@ Are you really want to continue? QObject - + Save 保存 - + Save changes to %1? 将修改保存到"%1"? @@ -6058,8 +6068,8 @@ Are you really want to continue? SynEdit - - + + The highlighter seems to be in an infinite loop 高亮处理进入了死循环 diff --git a/RedPandaIDE/debugger.cpp b/RedPandaIDE/debugger.cpp index 1a6f7510..a6fad45b 100644 --- a/RedPandaIDE/debugger.cpp +++ b/RedPandaIDE/debugger.cpp @@ -644,10 +644,6 @@ AnnotationType DebugReader::getAnnotation(const QString &s) return AnnotationType::TPrompt; } else if (s == "post-prompt") { AnnotationType result = AnnotationType::TPostPrompt; - - int IndexBackup = mIndex; - QString t = getNextFilledLine(); - mIndex = IndexBackup; //hack to catch local if ((mCurrentCmd) && (mCurrentCmd->command == "info locals")) { result = AnnotationType::TLocal; @@ -664,6 +660,8 @@ AnnotationType DebugReader::getAnnotation(const QString &s) result = AnnotationType::TMemory; } return result; + } else if (s == "error") { + return AnnotationType::TError; } else if (s == "error-begin") { return AnnotationType::TErrorBegin; } else if (s == "error-end") { @@ -888,6 +886,18 @@ void DebugReader::handleError() } } +void DebugReader::handleErrorExit() +{ + if ((mCurrentCmd) && ( + mCurrentCmd->command == "next" + || mCurrentCmd->command == "step" + || mCurrentCmd->command == "finish" + || mCurrentCmd->command == "continue")) { + handleExit(); + } + +} + void DebugReader::handleExit() { doprocessexited=true; @@ -1190,6 +1200,9 @@ void DebugReader::processDebugOutput() case AnnotationType::TSignal: handleSignal(); break; + case AnnotationType::TError: + handleErrorExit(); + break; case AnnotationType::TExit: handleExit(); break; diff --git a/RedPandaIDE/debugger.h b/RedPandaIDE/debugger.h index 687a414f..bd8d5740 100644 --- a/RedPandaIDE/debugger.h +++ b/RedPandaIDE/debugger.h @@ -26,6 +26,7 @@ enum class AnnotationType { TFrameSourceFile, TFrameSourceBegin, TFrameSourceLine, TFrameFunctionName, TFrameWhere, TFrameArgs, TFrameBegin, TFrameEnd, + TError, TErrorBegin, TErrorEnd, TArrayBegin, TArrayEnd, TElt, TEltRep, TEltRepEnd, @@ -307,6 +308,7 @@ private: void handleDisassembly(); void handleDisplay(); void handleError(); + void handleErrorExit(); void handleExit(); void handleFrames(); void handleLocalOutput(); diff --git a/RedPandaIDE/editor.cpp b/RedPandaIDE/editor.cpp index bf48091b..01cde49e 100644 --- a/RedPandaIDE/editor.cpp +++ b/RedPandaIDE/editor.cpp @@ -848,7 +848,7 @@ void Editor::onPreparePaintHighlightToken(int line, int aChar, const QString &to } if (!selAvail() && attr->name() == SYNS_AttrSymbol) { - qDebug()<