# BIT Code **Repository Path**: YDX-2147483647/bit-code ## Basic Information - **Project Name**: BIT Code - **Description**: 一个简单的 C 语言 IDE。 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: Qt-main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-08-31 - **Last Updated**: 2022-10-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: 学校 ## README # BIT Code 一个简单的 C 语言 IDE。 ## 介绍 ### 设置(`Settings`) `Settings`类继承自`QSettings`,添加了`setValue_if_not_exists()`和`value_with_auto_default()`方法,并自动设置 BIT Code 相关默认值。 大致设置逻辑: - 若设置文件中有 key,直接采用。 - 若无 key,则采取`Settings`中的`default`或`default_list`。期间会检验是否合法(比如格式化程序是否真的存在),不合法时由其它模块提示用户去设置。 目前用到的设置: - formatter(格式化) - style (`QString`):`clang-format`的`style`参数。默认为一种基于 LLVM 的样式。 - path (`QString`):`clang-format`的路径。默认会去 VS Code 的 [C/C++ 插件](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) 找。(`%HOMEPATH%/.vscode/extensions/ms-vscode.cpptools-1.6.0/LLVM/bin/clang-format.exe`) - run(运行) - compiler - path (`QString`):从~~环境变量、~~Dev C++、MinGW 找。 - args (`QStringList`):`-g`、`-Wall`。 - debugger - path (`QString`):同“run/compiler/path”。 - key_bind(键盘快捷方式) - app - exit:退出,Ctrl+Q。 - settings:设置,Ctrl+,。 - debug - start_or_continue:开始调试或继续,F5。 - step_in:单步调试,F11。 - step_out:单步跳出,Shift+F11. - step_over:单步跳过,F10。 - stop:停止调试,Shift+F5。 - toggle_breakpoint:切换当前行是否为断点,F9。 - edit - copy:复制,Ctrl+C。 - cut:剪切,Ctrl+X。 - format_all:格式化整个文件,Alt+Shift+F。 - paste:粘贴,Ctrl+V。 - search:查找和替换,Ctrl+F。 - file - new:新建,Ctrl+N。 - open:打开,Ctrl+O。 - save:保存,Ctrl+S。 - save_copy_as:另存,Ctrl+Shift+S。 - misc - set_character_2:???,Ctrl+K。 - run - compile:编译,Ctrl+Shift+B。 - run:运行,Ctrl+F5。 例如,如果您想更改“另存为”的键盘快捷方式为Ctrl+Alt+S,请在设置文件中`[key_bind]`这行后面加上`file\save_copy_as=Ctrl+Alt+S`,改好后整个文件类似下面这样。 ```ini [formatter] style=llvm [key_bind] file\save_copy_as=Ctrl+Alt+S [run] compiler\path="C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30037/bin/Hostx64/x64/cl.exe" ``` ## 功能 > 框是“基本要求”,点不是。 - 图形界面(看 Word 文档) - 菜单栏 - 文件资源管理器 - 文本编辑器 - 状态栏 - 核心 - 编辑 - 基本 - [x] 插入、删除 - [x] 复制、剪切、粘贴 - 简单查找 - [x] 字符和文本块的查找、替换 - 模糊搜索 - 正则表达式 - 语义相关(这些多在图形层面有反映) - 括号配对 - 大括号折叠 - ~~自动排版~~ - ~~关键字识别~~ - 语法动态分析 - 高级 - 行的复制等操作 - 多光标 - 文件(可以只有读类和写类,再继承拓展) - [x] (单个文件)新建、读取、保存(及另存)。 - (项目)新建、读取、保存。 - ~~设置的读写。(`QSettings `)~~ - 历史记录(`QUndoStack`) - 记录 - 还原 - 调试(g++) - [x] 编译 - [x] 显示编译结果 - 错误提示 - [x] 运行 - 【调试,单步调试】 - 花里胡哨 - 正版检测 - 更新 - 每日提示 - ~~`ext_music`(见下)~~ ### `Ext_Music` 声音是钢琴。 ```mathematica Export["tone" <> ToString[#] <> ".wav", Audio@SoundNote[#]] & /@ Range[0, 24] ``` 曾经试图基于 Qt 6.2.0-beta3 的多媒体(multimedia)模块,需要 Qt 6.2.0。→[Qt Multimedia in Qt 6](https://www.qt.io/blog/qt-multimedia-in-qt-6)、[Qt Multimedia 6.2.0](https://doc-snapshots.qt.io/qt6-6.2/qtmultimedia-index.html)。然而总是因不明原因崩溃,且 Qt 论坛上有相关但尚无解的讨论,最终转向 PowerShell 的播放功能。 ## 可能的参照物 - [Judge0 IDE](https://ide.judge0.com/)([GitHub 仓库](https://github.com/judge0/ide))。 - VS Code, VS。 - Dev C++。