'在线评测系统感知的Rust IDE'
项目描述
若佳:专注于在线评测系统的Rust / C++ / Python IDE
简介
基于PyQt的轻量级Rust IDE。(C++和Python支持为实验性)
此IDE简化并专注于算法竞赛,用户可以专注于编程,以实现最佳性能。
当您打开竞赛问题页面时,问题输入输出示例会自动在后台下载。
然后可以使用示例用例进行测试,使用测试用例进行调试,并一键提交。
特性
- Rust / C++ / Python
- GUI调试
- 在线评测测试用例下载和测试。(基于online-judge-tools)
- 使用在线评测测试用例进行调试
- 进行在线评测提交
- 补全器和跳转器(基于racer)
- 自动格式化(基于rustfmt)
- Rust REPL(基于evcxr_repl)
- 实时模板(IntelliJ风格)
- 竞赛任务浏览
- 显示图结构
软件需求
- Linux操作系统(我只测试了Ubuntu 16.04 / 18.04)
- Python(3.5或更高版本)
如果您想使用rust-lang进行开发,您需要
- evcxr_repl(
cargo install evcxr_repl
) - rustfmt(
rustup component add rustfmt
) - racer(请参阅https://github.com/racer-rust/racer)
如果您想使用C++进行开发,您需要
- clang(8.0.0或更高版本)
- clang-format
- g++
如果您想使用Python 3.x进行开发,您需要
- jedi(
pip install jedi
) - autopep8(
pip install autopep8
)
使用方法
如果您想使用若佳,请阅读并同意我们的Cookie政策。
在Linux上安装
安装 Qt5。如果您使用 Ubuntu 16.04,
$ apt update && apt install -y qt5-default libxcb-xinerama0-dev libnss3 libasound2
将正常工作。或者请参阅官方文档(https://www.qt.io/download)。
安装 Rujaion
$ pip3 install Rujaion
$ rujaion
在 Docker 上使用
见 https://github.com/fukatani/rust-gui-debugger/blob/master/docker/Readme.md
键盘快捷键
- 打开文件(Ctrl + o)
- 保存文件(Ctrl + s)
- 删除当前行(Ctrl + k)
- 设置或取消断点(F5)
- 开始调试或继续(F9)
- 使用下载的测试用例开始调试(F4)
- 下载示例测试用例(在浏览器中输入 URL 并按 Enter 键)
- 聚焦于 URL(F6)
- 运行(Ctrl + F9)
- 下一个(F8)
- 进入(F7)
- 退出(Shift + F8)
- 转到定义(Ctrl + b)
- 转到第一个编译错误(F2)
- 终止调试进程(Esc)
- 显示值(编辑显示小部件的 "名称" 列)
- 注释(Ctrl + /)
- 切换显示/隐藏浏览器小部件(F12)
- 切换全屏浏览/不浏览(Ctrl + F12)
- 切换显示/隐藏控制台小部件(F11)
竞赛任务浏览
您可以通过浏览器小部件浏览竞赛任务。您可以通过按 F11 键隐藏(或显示)浏览器。如果页面 URL 是竞赛任务页面,竞赛任务将由 online-judge-tools 自动下载。
登录编程竞赛
一些 online-judge-tools 功能(例如提交)需要登录会话信息。
您可以通过以下方式登录:
- 使用浏览器小部件登录
- 工具栏 -> 竞赛 -> 登录
Cookie 和安全策略
Rujaion 仅在由 online-judge-tools 支持的编程竞赛页面上使用 Cookie。
尽管您可以通过浏览器小部件访问任何页面,但 Rujaion 不会明确处理其他页面的 Cookie。(QtWebEngine 可能会使用它。)
Cookie 仅用于需要登录的 online-judge-tools 功能。(QtWebEngine 内部使用除外。)
我们对任何使用 Rujaion 的用户造成的损害不承担任何责任。
显示图形(由 Graph x Graph 提供)
在竞赛中,您经常需要绘制图形结构。
选择图形元素,并在浏览器右键菜单中选择 "查看图形",您可以轻松绘制图形结构。
显示表格
在竞赛中,您经常需要显示表格数据。(例如调试 DP 表格。)
选择图形元素,并在控制台右键菜单中选择 "可视化表格",您可以绘制表格数据。