Skip to main content

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 on idlelib. It can be work on any platform where IDLE 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, and recent-saved.lst in userdir. 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)

运行方法

  • 平台: 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


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)

Uploaded Source

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

Hashes for idlea-1.2.11.tar.gz
Algorithm Hash digest
SHA256 a2374ad5646ffa90cd2c445b1e7245a9ba4eb07b455cc9d02089136963641714
MD5 38c57630a342233ac3350f29ae4199a8
BLAKE2b-256 9e801ecbcd3b15a84d67691377a22bd13b826e70bc08731bdc055c8278892f14

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page