# source_reloader **Repository Path**: su_tools/source_reloader ## Basic Information - **Project Name**: source_reloader - **Description**: 用于本机插件开发过程中,自动重新加载有过修改的文件。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-03-20 - **Last Updated**: 2023-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### source_reloader(源码自动重载) 主体逻辑参考自Rack::Reloader https://github.com/rack/rack/blob/main/lib/rack/reloader.rb ### 如何使用 当成插件来用,无需特殊配置(有个开启/关闭按钮,如果平时需要手动停止重载的话,可以拖到工具栏上) ### 实现原理 1. 根据`$LOADED_FEATURES`和`$LOAD_PATH`找到所有已加载的文件。 2. 使用UI.start_timer每间隔一定时间(目前是写的2秒)去检测一次所有文件的修改时间。 3. 如文件的mtime有变,则重新load一下。 ### 功能列表 1. 自动重载 2. 手功开启/关闭自动重载 3. 没有了 ### TODO LIST - [ ] 新建文件无法自动加载 (动态添加的新文件因为不在`$LOADED_FEATURES`列表中,所以无法检测) - [ ] 参照https://github.com/thomthom/extension-sources 引入插件列表,可单插件开启/关闭自动重载 - [ ] 安装了大量的插件,每2秒遍历所有文件是否存在性能问题?(可以先排除掉SU自带的ruby库) - [ ] 用Mac开发的,Windows兼容性目前尚未验证