小熊猫C++是一款专业实用的编程软件,通过集成自动缩进、智能代码补全、智能语法高亮和实时语法检查等功能,小熊猫C++提供了流畅的代码编辑体验,可以大幅度提升代码编写的效率,同时软件的操作十分简单,适用于多种操作系统,享受更高质量的编程体验。
软件亮点
小熊猫C++支持Windows 7/8/10、Linux等操作系统。在各种操作系统下都能获得相同的高质量编程体验。
通过集成自动缩进、智能代码补全、智能语法高亮和实时语法检查等功能,小熊猫C++提供了流畅的代码编辑体验,可以大幅度提升代码编写的效率
小熊猫C++提供完善的调试功能,包括控制程序执行、断点、监视变量和表达式、表达式求值、查看本地变量、查看和切换调用栈、查看和修改内存、查看CPU寄存器和反编译信息等。小熊猫C++甚至还可以重定向被调试程序的输入!
小熊猫C++提供了完善的高分辨率和多显示器支持,能够在多个不同DPI设置的显示器间自由切换,同时提供完善的显示效果,便于教学和展示。
针对C/C++教学和竞赛需求,小熊猫C++专门提供了试题集和OJ功能:可以方便的组织管理、运行和测试C/C++练习程序;可以导入或者从OJ网站下载试题和配套的测试数据。
小熊猫C++内置git支持,可以方便对项目或工作文件夹进行版本管理(需额外安装git程序)
Windows版小熊猫C++在自带gcc中整合了ege、海龟作图、raylib、freeglut、GLFW和GLEW等适合编程或者游戏开发入门者使用的库和项目模板,无需复杂的安装配置即可直接使用。
软件特点
操作简便
小熊猫C++无需复杂的安装和配置,打开即可直接编辑程序文件;无需创建项目,点击工具栏上按钮即可编译、运行和调试程序。
轻量高效
小熊猫C++基于QT和C++语言开发,使用内置的轻量级代码分析器进行智能语法分析,运行时无需大量的内存和CPU资源,在低配置机器上也能获得流畅的运行体验。
多平台支持
小熊猫C++支持Windows 7/8/10、Linux等操作系统。在各种操作系统下都能获得相同的高质量编程体验。
生产力提升
通过集成自动缩进、智能代码补全、智能语法高亮和实时语法检查等功能,小熊猫C++提供了流畅的代码编辑体验,可以大幅度提升代码编写的效率。
调试
小熊猫C++提供完善的调试功能,包括控制程序执行、断点、监视变量和表达式、表达式求值、查看本地变量、查看和切换调用栈、查看和修改内存、查看CPU寄存器和反编译信息等。小熊猫C++甚至还可以重定向被调试程序的输入!
多屏幕
小熊猫C++提供了完善的高分辨率和多显示器支持,能够在多个不同DPI设置的显示器间自由切换,同时提供完善的显示效果,便于教学和展示。
试题集和OJ
针对C/C++教学和竞赛需求,小熊猫C++专门提供了试题集和OJ功能:可以方便的组织管理、运行和测试C/C++练习程序;可以导入或者从OJ网站下载试题和配套的测试数据。
GIT版本管理
小熊猫C++内置git支持,可以方便对项目或工作文件夹进行版本管理(需额外安装git程序)
整合多种学习用库
Windows版小熊猫C++在自带gcc中整合了ege、海龟作图、raylib、freeglut、GLFW和GLEW等适合编程或者游戏开发入门者使用的库和项目模板,无需复杂的安装配置即可直接使用。
更新日志
小熊猫C++ 3.0
功能改进:【工具】可以设置自定义工具项的输入和输出,以方便用户使用clang-format等外部程序编辑代码。
功能增强:【编辑器】滚动条以像素为单位滚动。
功能增强:【编辑器】改进对斜体的显示支持。
功能增强:【编辑器】支持显示码点大于0xFFFF的unicode字符,如emoji等。
功能增强:【编辑器】支持显示unicode复合字符。
功能增强:【编辑器】支持unicode的ZWJ和ZWNJ字符。
功能增强:【编辑器】显示ascii控制字符。
功能增强:【编辑器】在使用非等宽字体时,不再强制文字以“M”字符宽度的整数倍显示。
功能增强:【编辑器】在选项->编辑器->字体页中,增加“强制等宽显示”选项。在简体中文环境下默认勾选,其它环境下默认关闭。
功能增强:【编辑器】编辑器字体设置改用字体列表形式。取消“非英文字体”选项。
功能增强:【编辑器】在选项/编辑器/字体页中对字体列表进行配置(来自CyanoHao@github)。
功能增强:【编辑器】装订栏中的代码折叠按钮的大小与字体大小一致。
功能增强:【编辑器】美化对空格字符和回车的显示。(当勾选了选项->编辑器->字体 中“显示空白字符”相关选项时)
功能增强:【编辑器】当勾选了选项->编辑器->字体 中“显示空白字符”相关选项时,’ ‘中的空格也能被显示。
功能增强:【编辑器】文字显示在每一行的中间,即行间距在每行的上下均分。(来自CyanoHao@github)。
功能增强:【编辑器】将光标移动到行首非空格处时,尽量同时横向滚动到行首。
功能增强:【编辑器】当选中内容后输入字符’{‘时,自动插入回车并重新计算缩进。
功能增强:【编辑器】优化载入/编辑大文件时的处理速度。
功能增强:【编辑器】当文件被外部程序修改,重新载入其内容后,编辑器恢复载入前光标所在位置。
功能增强:【编辑器】“代码”菜单中增加“代码补全”菜单项。
功能增强:【编辑器】鼠标悬停在标签页上时,提示文件的完整路径名。
功能改进:【编辑器】高亮选中单词时,可高亮字符串/注释中的单词。
变化:【编辑器】去除“添加书签”和“删除书签”菜单项;增加“切换书签”菜单项。
变化:【编辑器】通过鼠标滚轮、触摸板进行内容横向滚动时,方向与其它应用程序一致。
变化:【编辑器】去除“复制限制”和“撤销限制”相关选项。
变化: 【编辑器】默认将“Ctrl+G”设为“跳转到行…“的快捷键。
变化:【编辑器】默认将”Ctrl+B“设为”切换书签“的快捷键。
修正:【编辑器】在窗口切分模式下,无论当前编辑器是否在右侧,相关菜单指令总是在左侧编辑器中执行。
修正:【编辑器】在 /** 注释后插入空行时会自动插入多余的 *.
修正:【编辑器】新粘贴内容的下一行的缩进不正确。
修正:【编辑器】被选中区域中各行行尾的回车不能正确显示。(当勾选了选项->编辑器->字体 中“显示空白字符”相关选项时)
修正:【编辑器】光标可能会错误的显示在装订栏中。
修正:【编辑器】在注释和字符串中,不应自动补全’{‘和’(’。
修正:【编辑器】在文本文件中输入”时可能崩溃。
修正:【编辑器】在列编辑模式下删除/插入处理不正确。
修正:【编辑器】按下END跳转到行尾时,光标定位在窗口外不显示。
修正:【编辑器】按下Ctrl+回车插入新行时,不进行不必要的横向滚动。
修正:【编辑器】编辑器的标题标签页不能正确显示包含’&‘的文件名。
修正:【编辑器】只有一行内容时,shift+下箭头(选中到行尾)无效。
修正:【编辑器】Ctrl+E删除当前行后,撤销再重做的结果不正确。
修正:【编辑器】使用ctrl+箭头改变选中内容范围时,不能及时更新匹配括号的位置。
功能增强:【语法高亮】当按下ctrl键并将鼠标移动到#include上时,在被包含的头文件名下显示一条完整统一的下划线。
功能增强:【语法高亮】以统一的颜色字体显示#include语句中的头文件名称
功能增强:【语法高亮】支持C++属性。
修正:【语法高亮】#include “float.h“中的float被错误的以关键字的颜色字体显示。
功能增强:【代码补全】在显示函数参数提示时自动将using alias替换成其实际引用的函数。
功能增强:【代码补全】代码分析器支持匿名类。
功能增强:【代码补全】代码分析器支持“enum struct”形式的枚举定义。
功能增强:【代码补全】对”auto &&“类型的变量进行类型推导。
功能增强:【代码补全】在补全提示列表中显示“std::function”。
功能增强:【代码补全】改进对lambda表达式的支持。
功能增强:【代码补全】对new表达式和临时变量进行类型推导。
功能增强:【代码补全】支持”std::make_shared“和”std::make_unique“函数返回值的自动类型推导。
功能增强:【代码补全】正确解析在#include语句中出现的宏定义
功能增强:【代码补全】对foreach循环中的stl map类容器,支持C++ 17 结构化绑定语法的自动类型推导。
功能增强:【代码补全】在”#ifdef”/”#ifndef“/”#undef“后输入时提示宏名称。
功能改进:【代码补全】调整函数定义信息显示的位置以避免其超出窗口右侧边缘。
功能改进:【代码补全】代码补全窗口的配色与编辑器当前的配色一致。
功能改进:【代码补全】头文件补全窗口的配色与编辑器当前的配色一致。
功能改进:【代码补全】代码分析器能正确处理”extern template“定义。
功能改进:【代码补全】提示弹窗的图标大小与编辑器字体一致。
功能改进:【代码补全】提示弹窗的字体大小和行高与编辑器一致。
功能改进:【代码补全】函数原型提示的宽度不超过编辑器宽度的3/4。
变化:【代码补全】基于编辑器的字体宽度和行高计算提示窗口的宽高。
修正:【代码补全】不能显示std::ios::sync_with_stdio的函数参数提示。
修正:【代码补全】代码分析器对全局变量的using alias分析不正确。
修正:【代码补全】在函数提示信息列表中包含不在当前作用域中的函数的信息。
修正:【代码补全】在函数提示信息中,加粗标签()未被正确处理。
修正:【代码补全】在#incldue语句的注释部分中不应该显示补全提示
修正:【代码补全】在补全提示列表中,通过private继承而来的私有类成员没有对应的图标。
修正:【代码补全】代码分析器将’=‘错误的当作’‘处理。
修正:【代码补全】代码分析器未能正确的获取函数参数类型。
修正:【代码补全】对含’[]‘的表达式的类型推导不正确。
修正:【代码补全】如果’(‘和函数名不在同一列,不能正确显示函数参数提示信息。
修正:【代码补全】代码分析器在重新解析文件文件时可能丢失类继承信息。
修正:【代码补全】代码分析器对函数参数列表信息的解析不正确。
修正:【代码补全】光标位于字符串/注释中的’(’/’,‘字符处时,会错误的显示函数参数提示信息。
修正:【代码补全】删除重复的宏定义后,分析器认为该宏未被定义。
修正:【代码补全】删除#undef语句后,分析器依然认为该宏未被定义。
修正:【代码补全】如果类方法存在多个重载形式,则只有一个会被子类继承。
修正:【代码补全】对于函数名中含有命名空间别名的被调用函数,无法显示函数参数提示。
修正:【代码补全】对于函数名中含有两个或以上命名空间名称的被调用函数,无法显示函数参数提示。
修正:【代码补全】无法跳转到使用“using ::printf”形式定义的符号。
修正:【代码补全】变量的定义类型中包含命名空间别名时,无法显示其成员的补全信息。
修正:【代码补全】当前符号所在的类定义了构造函数时,找不到其正确的类型。
修正:【代码补全】将命名空间别名定义为其自己,会导致无限循环。
修正:【代码补全】找不到被其它文件间接包含的头文件里声明/定义的符号。
修正:【代码补全】函数原型提示中不能正确显示含’《‘和’>‘的内容。
修正:【代码补全】如果表达式中的宏不能被展开,则不能推导该表达式的结果类型。
修正:【代码补全】在计算。或->后的变量成员的补全提示时,应忽略表达式前的&或*。
修正:【代码补全】如果变量的类型定义中含’»’,则无法正确显示它的成员补全提示信息。
修正:【代码补全】从正在进行代码分析的编辑器切换到另一个编辑器后,不会立刻自动进行代码分析。
修正:【代码补全】在项目中重命名文件后,未正确进行代码分析更新。
修正:【代码补全】输入形如”std::cout « (3) «std::endl;“后闪退。
修正:【代码补全】临时变量初始化被错误的解析为定义构造函数。
功能增强:【代码排版】增加新的排版选项:“删除多余的空行”(需astyle 3.3以上版本)。
功能增强:【代码排版】增加新的排版选项:“删除多余的空格”(需astyle 3.3以上版本)。
变化:【代码排版】默认不勾选“缩进class”选项,以保持和编辑器的自动缩进行为一致。
变化:【代码排版】改用官方版astyle程序进行代码排版。
变化:【代码排版】删除排版:“删除连续的空行”(astyle官方版不支持)。
修正:【代码排版】排版程序选项页中的选择程序按钮点击后无反应。
功能增强:【用户界面】为无效文件路径提示框增加中文翻译。
功能增强:【用户界面】在选项->环境->外观中,限制字体不能小于5。
功能改进:【用户界面】调整浅色主题中的高亮色,以突出显示对话框中当前拥有焦点的控件。
功能改进:【用户界面】支持为自定义工具项设置快捷键。
功能增强:【文件视图】新建文件后,自动选中并进入重命名状态。
功能增强:【文件视图】重命名文件时,仅选中文件名中除后缀名之外的部分。
功能增强:【文件视图】按回车键打开所选的文件。
功能增强:【项目】在项目视图中双击.def文件可将其在编辑器中打开。
功能增强:【项目】如果DLL项目包含.def文件,则使用它生成dll文件。
功能改进:【项目】在项目选项->编译器配置集页中改变当前基础编译器设置后,不自动保存,而是和其它设置一样需手动保存。
修正:【项目】在构建项目时会自动删除“项目名.exe.manifest”文件
修正:【项目】项目选项->文件页工作不正确。
修正:【项目】不能正确保存 项目选项 → 编译器配置页中的“自动链接”和“自动转换字符编码”选项。
修正:【项目】私有资源头文件的宏的名称可能以数字开头。
功能增强:【编译】在使用“Debug”编译器配置调用gcc进行编译时,自动增加-D_DEBUG参数(定义_DEBUG宏,与visual studio行为类似)
功能增强:【编译】改进通过自定义编译/链接参数调用编译器进行编译的安全性。(CyanoHao@github)
功能增强:【编译】在选项->编译器->编译器配置集中增加“添加编译器”按钮,可通过指定编译器可执行文件的路径来创建编译器配置。(在linux系统中,/usr/bin下可能同时存在多个的版本gcc)
功能增强:【编译】(仅Windows系统)链接选项页中增加“栈大小”选项。
变化:【编译】在选项/编译器/自动连接选项页中,默认勾选fmtlib的“强制以utf8作为输出字符集”选项。
修正:【编译】在编译项目时,工具输出中的编译消息中未包含项目可执行文件名。
修正:【编译】启用“检查栈溢出攻击(-fstack-protector)”选项时,生成的gcc编译参数不正确。
修正:【程序执行】程序执行后显示的内存使用量计算不正确。
功能增强:【用户界面】在第一次运行时,使用更美观的字体显示主题选择对话框。
功能改进:【用户界面】改进选项 → 通用 → 外观页中的自定义主题管理。
功能改进:【用户界面】重新设置所有设置页和对话框中控件的焦点顺序。
功能改进:【用户界面】解决调试控制台等控件与菜单项的快捷键冲突的问题。
功能改进:【用户界面】如果没有打开文件,则自动隐藏编辑/选择/代码/重构菜单。
功能改进:【用户界面】如果没有打开项目,则自动隐藏项目菜单。
修正:【用户界面】试题和试题集面板中按钮图标的大小不会随设置变化。
修正:【用户界面】“使用自定义主题”选项被勾选时,选项 → 环境 → 外观配置页的主题列表不能正确读取用户配置文件夹中的自定义主题文件信息。
功能增强:【调试】改进对lldb-mi的兼容。
功能增强:【调试】改进当未勾选“显示详细调试日志”时,主控台中显示的信息。
功能增强:【调试】在调试控制台中直接回车时,自动执行上一次执行的调试指令(和gdb行为一致)。
功能增强:【调试】为调试面板->调用栈列表中的内容增加鼠标信息提示。 “constexpr”/“extern”/“static”/“consteval”/“constinit”/“const”/“volatile”/“inline“等关键字后显示类型提示信息。
功能改进:【调试】在调试时,不自动将焦点设回编辑器(以方便在调试控制台中手动调试)。
功能改进:【调试】清空调试主控台的内容后,显示(gdb)提示。
功能改进:【调试】使用与调试主控台一样的字体(默认为等宽字体)显示CPU信息窗口的寄存器列表中的信息。
功能改进:【调试】双击调试面板->断点列表中的条件单元格时可修改断点条件。
修正:【调试】无法在调试面板的求值框中对含空格的表达式进行求值。
修正:【调试】无法监视含空格的表达式。
修正:【调试】在调试面板的调试主控台中,被自动换行的行里的内容无法被正确选中。
修正:【调试】在刷新显示调试控制台时,其背景未被正确清除。
修正:【调试】调试面板中各列表里的文件名未被正确省略显示。
修正:【调试】在调试主控台中使用上/下键载入命令历史时处理不正确。
修正:【调试】调试时CPU信息对话框中寄存器列表里的寄存器名称和顺序不正确。
修正:【调试】在调试控制台手动输入“disas”指令时,不显示输出的内容。
修正:【调试】在调试控制台中全部选中后,未更新显示。
修正:【调试】当8/16/32位寄存器中的值最高位为1时,其被错误的显示成64位16进制数。
修正:【调试】使用混合模式进行反汇编时,CPU信息窗口里面的C++源代码中;后面的部分被误作为注释高亮。
修正:【调试】含空格的断点条件不生效。
修正:【调试】使用Ctrl+F4切换断点时,断点被设在了错误的行上。
功能改进:【查找】搜索/替换和“在文件中查找…”对话框中的按钮增加Alt快捷键。
变化:【查找】在打开查找/替换对话框时,将输入焦点设置到”查找下一个“按钮上。
变化:【查找】在查找/替换对话框里搜索后,不将焦点移动到“关闭”按钮上。
变化:【查找】在打开“在文件中查找…”时,将输入焦点设置到”查找“按钮上。
功能改进:【试题集】如果试题案例设置中的“将标准错误内容重定向到工具面板”选项被勾选,在向工具面板写入标准错误信息时添加试题案例名称。
功能增强:【SDCC】在子文件夹中编译源文件。
变化:【SDCC】不再为SDCC项目生成项目资源文件。
修正:【SDCC】在编辑SDCC项目文件时,补全提示中不显示SDCC特有的关键字。
修正:【SDCC】在编辑SDCC项目文件时,不能正确解析含SDCC特有关键字的变量声明。
功能增强:【安装程序】Windows安装程序的Hi-DPI支持。
功能增强:【安装程序】Windows安装程序使用更大的字体。
功能增强:【其它】改进执行外部程序时的安全性。(来自CyanoHao@github)
改进:【其它】windows发行版中集成的xege库升级为github最新版
改进:【其它】32位windows发行版中集成的gcc升级为gcc 11.2版。
变化:【其它】改进在生成的makefile时对相关路径和参数的转义处理。
修正:【其它】选项/工具/通用页中的’程序在主控台中结束运行后暂停’选项不能正确工作。