IDLE-Advance
Project description
IDLE-Advance
About
- Platform: >= Windows or Linux/macOS (untested)
- Python: >= Python 3.4
- Author: Shixian Li (znsoooo)
- Github: https://github.com/znsoooo/IDLE-Advance
- License: MIT License. Copyright (c) 2021-2024 Shixian Li (znsoooo). All rights reserved.
What is it?
IDLE-Advance
add some useful extensions base onidlelib
. It can be work on any platform whereIDLE
can be work.- See
~/idlealib/readme.md
to get spec of each extension. It is same as open each script and watch __doc__. - Stop extension(s) by moveing script(s) to
nouse
folder. - It will generate
.pybak
file in script folder, andrecent-saved.lst
inuserdir
. So make sure no important files will be overwritten.
How to use?
Run directly
It is same as run such file by python
or pythonw
:
~/run.py
~/idlealib/__main__.py
~/idlealib/scripts/run.py
Install by pip
pip install idlea --upgrade
install windnd
and qrcode
for drag-open
and code-share
feature:
pip install windnd
pip install qrcode
Install by source
python setup.py install
Run script in shell
Script in Python folder ~/Scripts
:
idlea
Run module as script
python -m idlealib
Run module in python
import idlealib
idlealib.run()
Run unit test of one extension
Open any ~/idlealib/*.py
file directly.
Stop extension(s)
Move stopped script file to ~/nouse
folder and restart idlea
.
How to Set?
Quick set
Make shortcut to Desktop and Startup Menu.
Open the GUI config helper and setting:
~/idlealib/scripts/context_helper.pyw
Make shortcut
Make shortcut of ~/idlealib/__main__.py
to Desktop or Startup Menu folder or anywhere.
Add to right-click menu (only windows)
Create path
in regedit
:
HKEY_CURRENT_USER\Software\Classes\Python.File\Shell\Edit with IDLE-Adv\command
and set value
as:
"~\pythonw.exe" "~\idlealib\__main__.py" "%L" %*
IDLE增强计划(Advance)
- Author: Shixian Li
- QQ: 11313213
- Email: lsx7@sina.com
- Website: https://github.com/znsoooo/IDLE-Advance
运行方法
- 平台: Windows/Python3.4 (Python3.4.4是Windows XP支持的最后一个版本,所以低于此版本的不再测试。Linux/macOS平台未做测试)
- 依赖: 可选择地安装windnd库,增加拖拽脚本文件到窗口即可打开的快捷操作,不安装此依赖也不影响整体运行
- 使用: 用python启动run.py文件,随后在此界面上操作打开其他的脚本文件即可
- 功能: 见后文todolist,实现的功能已经标记,剩余部分争取在1年之内完成
关于项目
笔者的话
- 本项目(IDLE-Advance)和另一个IDLEX的开发项目没有关联!
- 由于该项目停止维护已久(2012年),并且该项目使用者的主要功能提升是增加了可以显示代码行号。
- 但是我认为IDLE本来在窗口的右下角就有显示行号,甚至在新版的python中,可选的显示行号功能直接增加为了新的feature(py3.9)。
- 所以笔者不在前人的轮子基础上继续修改,而是选择重新造一个轮子。
项目目标
- 众所周知,Python安装自带IDLE,是一个轻量级的编辑器,比命令行的python和记事本打开修改py文件的调试效率高了无数倍,甚至还有断点和单步调试的功能。
- 但是那么多人使用PyCharm等第三方编译环境也不是没有道理的,PyCharm中的很多便捷操作确实很实用,但是毕竟PyCharm实在是太大了(300MB+)。
- 抱着IDLE发展了20+年,也一直有人在用的打算,这个轮子应该不会马上被抛弃。增强IDLE的功能,通过一些简单但实用的功能,增加IDLE的生命力,让坚守者可以坚持得更久一点(?)。
- 本工程代码中有大量的
TODO
标记,如果希望贡献意见,可以在GitHub上提交修改。不过GitHub我不太会用,修改代码前最好留言说明,或者发送给我邮件:11313213@qq.com ,非常感谢您的贡献!
使用方法
- 本代码运行需保证已经安装Python和IDLE,新增方法采用hack进原idlelib库的方法,所以除了增加部分功能完全没有影响IDLE的原始功能,不需要改变任何idlelib的原始代码即可运行。
- 原始IDLE实现右键即可通过IDLE打开的方法,实际是是通过添加右键菜单转义为将idlelib库通过带参数运行的方式启动。本作并不想采用创新的方法重新造轮子,所以为了修改只需要将原来的idlelib换成idlealib即可改变右键编辑的功能。
- 或者可以直接使用python运行本代码,会启动shell,然后打开后续的.py脚本文件可以实现相同的效果。
- 所有的方法都展示在菜单栏最后一个增加的Advance项目下,以供快速使用。
Todolist
★★★★★(Very Useful)
- ✅ 选中同名变量高亮(全字匹配、右键上一条和下一条、右键搜索)
- ✅ Alt+左/右导航上一次鼠标点击位置/回到上次编辑的位置/前进后退上次光标位置
- ✅ 查找替换工具条(搜索记录、大小写匹配、全字匹配、正则、匹配数量、修改动态显示、所有匹配结果高亮、只替换选中的区域、上下条、多文件搜索)
★★★★(Useful)
- ✅ 横向滚动条
- ✅ 历史剪切版
- ✅ 快速添加/删除括号
- ✅ 双击选中(选中括号内的内容、引号中的内容、注释内容、连续空格)
- ✅ 双击左侧空白选中代码块
- ✅ 检测文件变化重新加载
- ✅ 打开时回到上次编辑的位置
- ✅ 不保存运行当前脚本(Shift+F5)
- ✅ 自动恢复未保存NewFile的内容
- ✅ 未选中文本时,复制/剪切选中当前行
- ✅ 文本纵向选择
- ✅ 复制插入当前行
- ✅ 上下移动当前行
★★(Good)
- ✅ 打开脚本所在目录/终端打开脚本所在目录/拷贝脚本所在路径、完整路径、文件名/插入脚本路径
- ✅ 运行选中的代码(自动缩进调整)/运行到光标位置/从光标位置开始运行
- ✅ 复制文件名/打开路径/插入文件名、重新加载、修改文件名
- ✅ 快捷反向查找(F3/Shift+F3)
- ❎ 内建搜索窗口置顶但不捕捉
- ✅ 定时备份/打开时恢复未保存记录
- ✅ 拖拽打开文件
- ✅ 二维码分享代码
- ✅ 交换位置复制(Ctrl+Shift+X)
- ✅ 自动补全保留关键词
- ✅ 快速大小写转换
- ✅ 可选中Calltips中的文本
- ✅ 选中变量帮助查看器
- ✅ 快速注释和取消注释
- ✅ Shift-Tab
★(Better)
- ✅ 快捷键窗口循环切换/恢复页面/关闭窗口(并激活下一个窗口)/关闭全部
- ✅ 带参数运行脚本
- ✅ 快速打开资源文件
- ✅ 模拟打印\r效果
- ✅ 版本比较(基于difflib)
- ✅ 快速输入当前时间戳注释文本
- ❎ 按照剪切板文本搜索
- ❎ 取消关闭窗口后清空剪切板
- ✅ 去除文件内行尾空格
☆(Shell)
- ✅ 多行运行
- ✅ 魔法复制
- ✅ 执行记录新建为脚本
- ✅ 清空Shell或Shell选中的内容
- ✅ 自动换行切换
- ❎ 本地记录历史操作
☆(Other)
- ✅ 模块单元测试
- ✅ 提交PyPI
- ✅ 兼容py34
- ❎ 扩展管理器(开关和配置热键)
- ❎ 检查更新
- ✅ 关于框
- ✅ 快捷启动器
- ✅ 快捷部署器(右键菜单/右键新建/桌面和开始菜单快捷方式)
- ❎ 一键打开Github网页项目
- ✅ 汇总打印扩展简要说明
- ✅ 添加Scripts脚本
- ✅ 支持包模式运行
×(Future)
- ❎ Filelist/Shell/Editor连在一个窗口
- ❎ 自动补全作用域内的参数名
- ❎ 放置鼠标气泡显示数值/引用参数查看定义位置/定义参数查找使用位置
- ✅ 快速查看被引用内容(比如打开图片、文本、快速执行命令)
- ❎ 代码模板(Exception和pdb调试)
×(Forget)
- ❎ 注释后移动到下一行
- ❎ Shell自由编辑模式(F12)
他山之石
Pycharm
- ❎ 选择python解释器
- ✅ 带参数运行脚本
- ✅ 调试运行到光标位置
- ✅ 自动换行
- ❎ 快速换行(Shift+Enter)
- ✅ 快速大小写转化(Ctrl+Shift+U)
- ❎ 代码折叠
- ✅ 历史剪切版
- ❎ 书签
- ✅ 捕获异常模板(Exception和pdb调试)
- ❎ 代码模板
- ✅ 双击左侧空白选中代码块
- ❎ 多规则搜索筛选文件排除测试文件
- ✅ 回到上次编辑的位置
- ❎ 进入函数方法(进入定义、进入父类定义方法)
- ✅ 前进后退上次光标位置
- ✅ 显示最近打开的修改过的文件
- ❎ 搜索TODO和FIXME
- ✅ 最近搜索记录
- ❎ 正则表达式测试
- ❎ 代码滚动预览
- ❎ 储存操作记录(历史编辑文件)
- ❎ 输入时自动匹配(下拉菜单、忽略大小写)
- ✅ 文本纵向选中
- ❎ 代码重构:变量重命名、函数重命名(使用替换、全字匹配、区域替换等)
- ✅ 打开脚本所在目录
- ✅ 终端打开脚本所在目录
- ✅ 拷贝脚本所在路径/完整路径/文件名
- Ref: http://pycharm.iswbm.com/
IELDX
- ✅ 在shell中粘贴并运行多行
- ✅ 无需重新启动即可清除Shell窗口
- ❎ 按F8使用代码浏览器改进代码导航(和class browser功能雷同)
- ❎ 查找和替换作为具有增量搜索的工具栏
- ✅ shell智能粘贴(删除 >>> 提示)
- ❎ 在编辑器中突出显示(\t)
- ✅ 使用F9从编辑器中执行突出显示的代码或单行
- ✅ 文档查看器在单独的窗口中查看help()和文档字符串
- ✅ 查看网站和检查更新状态
- ✅ 扩展管理器
- ✅ 关于框
- ✅ 快捷启动器
- ✅ 快捷部署器(增加右键菜单)
- Ref: http://idlex.sourceforge.net
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
idlea-1.2.11.tar.gz
(39.5 kB
view details)
File details
Details for the file idlea-1.2.11.tar.gz
.
File metadata
- Download URL: idlea-1.2.11.tar.gz
- Upload date:
- Size: 39.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.18 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2374ad5646ffa90cd2c445b1e7245a9ba4eb07b455cc9d02089136963641714 |
|
MD5 | 38c57630a342233ac3350f29ae4199a8 |
|
BLAKE2b-256 | 9e801ecbcd3b15a84d67691377a22bd13b826e70bc08731bdc055c8278892f14 |