{"id":18881444,"url":"https://github.com/znsoooo/idle-advance","last_synced_at":"2025-04-14T20:11:00.657Z","repository":{"id":49219585,"uuid":"365529202","full_name":"znsoooo/IDLE-Advance","owner":"znsoooo","description":"Python3 IDLE增强计划","archived":false,"fork":false,"pushed_at":"2022-12-11T01:52:28.000Z","size":235,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-01T13:00:42.130Z","etag":null,"topics":["python","python-library","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/znsoooo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-08T14:04:07.000Z","updated_at":"2023-04-20T14:55:57.000Z","dependencies_parsed_at":"2023-01-26T13:46:45.361Z","dependency_job_id":null,"html_url":"https://github.com/znsoooo/IDLE-Advance","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znsoooo%2FIDLE-Advance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znsoooo%2FIDLE-Advance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znsoooo%2FIDLE-Advance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znsoooo%2FIDLE-Advance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/znsoooo","download_url":"https://codeload.github.com/znsoooo/IDLE-Advance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248952350,"owners_count":21188426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","python-library","python3"],"created_at":"2024-11-08T06:49:27.318Z","updated_at":"2025-04-14T20:11:00.623Z","avatar_url":"https://github.com/znsoooo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IDLE-Advance\r\n\r\n## About\r\n- __Platform:__ \u003e= Windows or Linux/macOS (untested)\r\n- __Python:__ \u003e= Python 3.4\r\n- __Author:__ Shixian Li (znsoooo)\r\n- __Github:__ https://github.com/znsoooo/IDLE-Advance\r\n- __License:__ MIT License. Copyright (c) 2021-2024 Shixian Li (znsoooo). All rights reserved.\r\n\r\n\r\n## What is it?\r\n- `IDLE-Advance`  add some useful extensions base on `idlelib`. It can be work on any platform where `IDLE` can be work.\r\n- See `~/idlealib/readme.md` to get spec of each extension. It is same as open each script and watch \\_\\_doc__.\r\n- Stop extension(s) by moveing script(s) to `nouse` folder.\r\n- It will generate `.pybak` file in script folder, and `recent-saved.lst` in `userdir`. So make sure no important files will be overwritten.\r\n\r\n\r\n## How to use?\r\n\r\n### Run directly\r\nIt is same as run such file by `python` or `pythonw`:\r\n```bash\r\n~/run.py  \r\n~/idlealib/__main__.py  \r\n~/idlealib/scripts/run.py\r\n```\r\n\r\n### Install by pip\r\n```bash\r\npip install idlea --upgrade\r\n```\r\n\r\ninstall `windnd` and `qrcode` for `drag-open` and `code-share` feature:\r\n```bash\r\npip install windnd\r\npip install qrcode\r\n```\r\n\r\n### Install by source\r\n```bash\r\npython setup.py install\r\n```\r\n\r\n### Run script in shell\r\nScript in Python folder `~/Scripts`:\r\n```bash\r\nidlea\r\n```\r\n\r\n### Run module as script\r\n```bash\r\npython -m idlealib\r\n```\r\n\r\n### Run module in python\r\n```python\r\nimport idlealib\r\nidlealib.run()\r\n```\r\n\r\n### Run unit test of one extension\r\nOpen any `~/idlealib/*.py` file directly.\r\n\r\n### Stop extension(s)\r\nMove stopped script file to `~/nouse` folder and restart `idlea`.\r\n\r\n\r\n## How to Set?\r\n\r\n### Quick set\r\nMake shortcut to Desktop and Startup Menu.  \r\nOpen the GUI config helper and setting:\r\n\r\n```bash\r\n~/idlealib/scripts/context_helper.pyw\r\n```\r\n\r\n### Make shortcut\r\nMake shortcut of `~/idlealib/__main__.py` to Desktop or Startup Menu folder or anywhere.\r\n\r\n### Add to right-click menu (only windows)\r\nCreate `path` in `regedit`:\r\n```\r\nHKEY_CURRENT_USER\\Software\\Classes\\Python.File\\Shell\\Edit with IDLE-Adv\\command\r\n```\r\n\r\nand set `value` as:\r\n```\r\n\"~\\pythonw.exe\" \"~\\idlealib\\__main__.py\" \"%L\" %*\r\n```\r\n\r\n\r\n# IDLE增强计划（Advance）\r\n- __Author:__ Shixian Li\r\n- __QQ:__ 11313213\r\n- __Email:__ lsx7@sina.com\r\n- __Website:__ https://github.com/znsoooo/IDLE-Advance\r\n\r\n\r\n## 运行方法\r\n- __平台：__ Windows/Python3.4 （Python3.4.4是Windows XP支持的最后一个版本，所以低于此版本的不再测试。Linux/macOS平台未做测试）\r\n- __依赖：__ 可选择地安装windnd库，增加拖拽脚本文件到窗口即可打开的快捷操作，不安装此依赖也不影响整体运行\r\n- __使用：__ 用python启动run.py文件，随后在此界面上操作打开其他的脚本文件即可\r\n- __功能：__ 见后文todolist，实现的功能已经标记，剩余部分争取在1年之内完成\r\n\r\n## 关于项目\r\n\r\n### 笔者的话\r\n\r\n- 本项目（IDLE-Advance）和另一个[IDLEX](http://idlex.sourceforge.net)的开发项目没有关联！\r\n- 由于该项目停止维护已久（2012年），并且该项目使用者的主要功能提升是增加了可以显示代码行号。\r\n- 但是我认为IDLE本来在窗口的右下角就有显示行号，甚至在新版的python中，可选的显示行号功能直接增加为了新的feature（py3.9）。\r\n- 所以笔者不在前人的轮子基础上继续修改，而是选择重新造一个轮子。\r\n\r\n\r\n### 项目目标\r\n\r\n- 众所周知，Python安装自带IDLE，是一个轻量级的编辑器，比命令行的python和记事本打开修改py文件的调试效率高了无数倍，甚至还有断点和单步调试的功能。\r\n- 但是那么多人使用PyCharm等第三方编译环境也不是没有道理的，PyCharm中的很多便捷操作确实很实用，但是毕竟PyCharm实在是太大了（300MB+）。\r\n- 抱着IDLE发展了20+年，也一直有人在用的打算，这个轮子应该不会马上被抛弃。增强IDLE的功能，通过一些简单但实用的功能，增加IDLE的生命力，让坚守者可以坚持得更久一点（？）。\r\n- 本工程代码中有大量的`TODO`标记，如果希望贡献意见，可以在GitHub上提交修改。不过GitHub我不太会用，修改代码前最好留言说明，或者发送给我邮件：11313213@qq.com ，非常感谢您的贡献！\r\n\r\n\r\n### 使用方法\r\n\r\n- 本代码运行需保证已经安装Python和IDLE，新增方法采用hack进原idlelib库的方法，所以除了增加部分功能完全没有影响IDLE的原始功能，不需要改变任何idlelib的原始代码即可运行。\r\n- 原始IDLE实现右键即可通过IDLE打开的方法，实际是是通过添加右键菜单转义为将idlelib库通过带参数运行的方式启动。本作并不想采用创新的方法重新造轮子，所以为了修改只需要将原来的idlelib换成idlealib即可改变右键编辑的功能。\r\n- 或者可以直接使用python运行本代码，会启动shell，然后打开后续的.py脚本文件可以实现相同的效果。\r\n- 所有的方法都展示在菜单栏最后一个增加的Advance项目下，以供快速使用。\r\n\r\n\r\n## Todolist\r\n\r\n★★★★★（Very Useful）\r\n- [x] 选中同名变量高亮（全字匹配、右键上一条和下一条、右键搜索）\r\n- [x] Alt+左/右导航上一次鼠标点击位置/回到上次编辑的位置/前进后退上次光标位置\r\n- [x] 查找替换工具条（搜索记录、大小写匹配、全字匹配、正则、匹配数量、修改动态显示、所有匹配结果高亮、只替换选中的区域、上下条、多文件搜索）\r\n\r\n★★★★（Useful）\r\n- [x] 横向滚动条\r\n- [x] 历史剪切版\r\n- [x] 快速添加/删除括号\r\n- [x] 双击选中（选中括号内的内容、引号中的内容、注释内容、连续空格）\r\n- [x] 双击左侧空白选中代码块\r\n- [x] 检测文件变化重新加载\r\n- [x] 打开时回到上次编辑的位置\r\n- [x] 不保存运行当前脚本（Shift+F5）\r\n- [x] 自动恢复未保存NewFile的内容\r\n- [x] 未选中文本时，复制/剪切选中当前行\r\n- [x] 文本纵向选择\r\n- [x] 复制插入当前行\r\n- [x] 上下移动当前行\r\n\r\n★★（Good）\r\n- [x] 打开脚本所在目录/终端打开脚本所在目录/拷贝脚本所在路径、完整路径、文件名/插入脚本路径\r\n- [x] 运行选中的代码（自动缩进调整）/运行到光标位置/从光标位置开始运行\r\n- [x] 复制文件名/打开路径/插入文件名、重新加载、修改文件名\r\n- [x] 快捷反向查找（F3/Shift+F3）\r\n- [ ] 内建搜索窗口置顶但不捕捉\r\n- [x] 定时备份/打开时恢复未保存记录\r\n- [x] 拖拽打开文件\r\n- [x] 二维码分享代码\r\n- [x] 交换位置复制（Ctrl+Shift+X）\r\n- [x] 自动补全保留关键词\r\n- [x] 快速大小写转换\r\n- [x] 可选中Calltips中的文本\r\n- [x] 选中变量帮助查看器\r\n- [x] 快速注释和取消注释\r\n- [x] Shift-Tab\r\n\r\n★（Better）\r\n- [x] 快捷键窗口循环切换/恢复页面/关闭窗口(并激活下一个窗口)/关闭全部\r\n- [x] 带参数运行脚本\r\n- [x] 快速打开资源文件\r\n- [x] 模拟打印\\r效果\r\n- [x] 版本比较（基于difflib）\r\n- [x] 快速输入当前时间戳注释文本\r\n- [ ] 按照剪切板文本搜索\r\n- [ ] 取消关闭窗口后清空剪切板\r\n- [x] 去除文件内行尾空格\r\n\r\n☆（Shell）\r\n- [x] 多行运行\r\n- [x] 魔法复制\r\n- [x] 执行记录新建为脚本\r\n- [x] 清空Shell或Shell选中的内容\r\n- [x] 自动换行切换\r\n- [ ] 本地记录历史操作\r\n\r\n☆（Other）\r\n- [x] 模块单元测试\r\n- [x] 提交PyPI\r\n- [x] 兼容py34\r\n- [ ] 扩展管理器（开关和配置热键）\r\n- [ ] 检查更新\r\n- [x] 关于框\r\n- [x] 快捷启动器\r\n- [x] 快捷部署器（右键菜单/右键新建/桌面和开始菜单快捷方式）\r\n- [ ] 一键打开Github网页项目\r\n- [x] 汇总打印扩展简要说明\r\n- [x] 添加Scripts脚本\r\n- [x] 支持包模式运行\r\n\r\n×（Future）\r\n- [ ] Filelist/Shell/Editor连在一个窗口\r\n- [ ] 自动补全作用域内的参数名\r\n- [ ] 放置鼠标气泡显示数值/引用参数查看定义位置/定义参数查找使用位置\r\n- [x] 快速查看被引用内容（比如打开图片、文本、快速执行命令）\r\n- [ ] 代码模板（Exception和pdb调试）\r\n\r\n×（Forget）\r\n- [ ] 注释后移动到下一行\r\n- [ ] Shell自由编辑模式（F12）\r\n\r\n\r\n## 他山之石\r\n\r\n### Pycharm\r\n- [ ] 选择python解释器\r\n- [x] 带参数运行脚本\r\n- [x] 调试运行到光标位置\r\n- [x] 自动换行\r\n- [ ] 快速换行（Shift+Enter）\r\n- [x] 快速大小写转化（Ctrl+Shift+U）\r\n- [ ] 代码折叠\r\n- [x] 历史剪切版\r\n- [ ] 书签\r\n- [x] 捕获异常模板（Exception和pdb调试）\r\n- [ ] 代码模板\r\n- [x] 双击左侧空白选中代码块\r\n- [ ] 多规则搜索筛选文件排除测试文件\r\n- [x] 回到上次编辑的位置\r\n- [ ] 进入函数方法（进入定义、进入父类定义方法）\r\n- [x] 前进后退上次光标位置\r\n- [x] 显示最近打开的修改过的文件\r\n- [ ] 搜索TODO和FIXME\r\n- [x] 最近搜索记录\r\n- [ ] 正则表达式测试\r\n- [ ] 代码滚动预览\r\n- [ ] 储存操作记录（历史编辑文件）\r\n- [ ] 输入时自动匹配（下拉菜单、忽略大小写）\r\n- [x] 文本纵向选中\r\n- [ ] 代码重构：变量重命名、函数重命名（使用替换、全字匹配、区域替换等）\r\n- [x] 打开脚本所在目录\r\n- [x] 终端打开脚本所在目录\r\n- [x] 拷贝脚本所在路径/完整路径/文件名\r\n- Ref: http://pycharm.iswbm.com/\r\n\r\n### IELDX\r\n- [x] 在shell中粘贴并运行多行\r\n- [x] 无需重新启动即可清除Shell窗口\r\n- [ ] 按F8使用代码浏览器改进代码导航（和class browser功能雷同）\r\n- [ ] 查找和替换作为具有增量搜索的工具栏\r\n- [x] shell智能粘贴（删除 \u003e\u003e\u003e 提示）\r\n- [ ] 在编辑器中突出显示(\\t)\r\n- [x] 使用F9从编辑器中执行突出显示的代码或单行\r\n- [x] 文档查看器在单独的窗口中查看help()和文档字符串\r\n- [x] 查看网站和检查更新状态\r\n- [x] 扩展管理器\r\n- [x] 关于框\r\n- [x] 快捷启动器\r\n- [x] 快捷部署器（增加右键菜单）\r\n- Ref: http://idlex.sourceforge.net\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznsoooo%2Fidle-advance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fznsoooo%2Fidle-advance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznsoooo%2Fidle-advance/lists"}