Plugins 具有多个文件的Sublime Text 2软件包开发,无需重新启动

Plugins 具有多个文件的Sublime Text 2软件包开发,无需重新启动,plugins,package,sublimetext,Plugins,Package,Sublimetext,我正在为sublime文本开发几个包,为了避免复制和粘贴大量代码,我开始将类移动到单独的文件中。到目前为止,我一直在避免这样做,因为在我当前的工作流程中,对主插件文件之外的文件所做的更改在保存时不会得到更新,只有在我重新启动sublime时才会生效 是否有方法可以在不重新启动Sublime Text的情况下重新加载包(包括其所有文件)?: 升华文本将在包发生更改时从包中重新加载顶级Python模块(可能是因为您正在编辑一个.py文件)。相比之下,Python子包不会自动重新加载,这会在开发插件时

我正在为sublime文本开发几个包,为了避免复制和粘贴大量代码,我开始将类移动到单独的文件中。到目前为止,我一直在避免这样做,因为在我当前的工作流程中,对主插件文件之外的文件所做的更改在保存时不会得到更新,只有在我重新启动sublime时才会生效

是否有方法可以在不重新启动Sublime Text的情况下重新加载包(包括其所有文件)?

升华文本将在包发生更改时从包中重新加载顶级Python模块(可能是因为您正在编辑一个.py文件)。相比之下,Python子包不会自动重新加载,这会在开发插件时导致混乱。一般来说,最好在对插件文件进行更改后重新启动升华文本,这样所有更改都可以生效

不幸的是,插件没有加载到控制台可见的作用域中(Ctrl`),所以不能只加载它编辑但是,您可以从顶级插件文件中调用
reload()
,如@skuroda的详细说明

您必须决定何时将类拆分为单独的文件,而不是将它们放在一个单一的集合中。有50个文件,每个文件只有两个或三个函数定义,这在一个方向上是过分的,而有20个类,每个类在一个文件中有10个或15个方法,这在另一个方向上是过分的,所以只需做最适合特定项目的事情。根据我的经验,在任何受支持的操作系统中杀死/重新启动ST2都不会花费太长时间(XP除外,出于某种原因…),所以希望不会对您的工作流程造成太大延迟。我的一个建议是创建一个可移植的安装(如果你在Windows上),如果你的启动时间太长的话,只需要在额外的插件中安装一些简单的软件

祝你好运

来自:

升华文本将在包发生更改时从包中重新加载顶级Python模块(可能是因为您正在编辑一个.py文件)。相比之下,Python子包不会自动重新加载,这会在开发插件时导致混乱。一般来说,最好在对插件文件进行更改后重新启动升华文本,这样所有更改都可以生效

不幸的是,插件没有加载到控制台可见的作用域中(Ctrl`),所以不能只加载它编辑但是,您可以从顶级插件文件中调用
reload()
,如@skuroda的详细说明

您必须决定何时将类拆分为单独的文件,而不是将它们放在一个单一的集合中。有50个文件,每个文件只有两个或三个函数定义,这在一个方向上是过分的,而有20个类,每个类在一个文件中有10个或15个方法,这在另一个方向上是过分的,所以只需做最适合特定项目的事情。根据我的经验,在任何受支持的操作系统中杀死/重新启动ST2都不会花费太长时间(XP除外,出于某种原因…),所以希望不会对您的工作流程造成太大延迟。我的一个建议是创建一个可移植的安装(如果你在Windows上),如果你的启动时间太长的话,只需要在额外的插件中安装一些简单的软件


祝你好运

实际上不必重新启动编辑器。你将不得不重新构造你的插件来利用这一点。基本上,您可以从一些顶级文件加载插件文件。作为一个例子,请看。我也在中这样做(尽管包控制解决方案可能更健壮(我确实是基于此)。仍然不如简单地保存一个特定的文件好,但比重新启动要好!事实上,您可能会在修改子文件时加入
on\u post\u save
事件来自动保存顶级文件。

您实际上不必重新启动编辑器。不过,您必须重新构建插件以利用基本上,你可以从一些顶级文件加载插件文件。作为一个例子,看一下。我也在中这样做(尽管包控制解决方案可能更健壮(我确实是基于此)。仍然不如简单地保存一个特定的文件好,但比重新启动要好!事实上,当你修改一个子文件时,你可能会加入
on\u post\u save
事件来自动保存顶级文件。

我个人发现最简单的解决方案是安装,只需将一个新文件放在我插件的顶级目录中名为
.build
。保存顶级插件文件,享受无需重新启动的乐趣


几乎不需要重新构造代码。

我个人发现最简单的解决方案是安装,只需在名为
.build
的插件顶部目录中放置一个新文件。保存顶级插件文件,享受无需重新启动的乐趣


几乎不需要重新构造代码。

难以置信!非常感谢!现在我只是直接撕掉你的reloader.py文件,希望你不介意。我不介意从顶级文件保存(这就是我一直在重新加载插件,直到我将其分为不同的文件。)我所关心的是失去撤销功能,每次重新启动时,在不同桌面上打开的sublime windows都会在一个桌面上打开。虽然这是一个绝妙的主意,但在发布保存时连接到
,我可能会在手头有时间时试一试。谢谢,我实际上不知道这一点。因此,从我对
reloader.py
,它只需重新加载
sys.modules
中的所有模块,对吗?如何/何时调用
reloader
,然后在其存储库中链接到的文件skuroda中调用它:。此文件必须是顶级目录。如果在同一个插件目录中有多个插件,请确保列出