---
name: "Padre::PluginManager"
section: "3pm"
platform: "linux"
package: "padre"
version: "1.00+dfsg-3"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/Padre::PluginManager"
---

# Padre::PluginManager(3pm)

Padre plug-in manager

## NAME

Padre::PluginManager - Padre plug-in manager

## DESCRIPTION

The `"PluginManager"` class contains logic for locating and loading Padre plug-ins, as well as providing part of the interface to plug-in writers.

## METHODS

### "new"

The constructor returns a new `"Padre::PluginManager"` object, but you should normally access it via the main Padre object:

```
  my $manager = Padre->ide->plugin_manager;
```

First argument should be a Padre object.

### "parent"

Stores a reference back to the parent IDE object.

### "plugin\_dir"

Returns the user plug-in directory (below the Padre configuration directory). This directory was added to the `@INC` module search path.

### "plugins"

Returns a hash (reference) of plug-in names associated with a Padre::PluginHandle.

This hash is only populated after `"load_plugins()"` was called.

### current

Gets a Padre::Current context for the plugin manager.

### "main"

A convenience method to get to the main window.

### "load\_plugins"

Scans for new plug-ins in the user plug-in directory, in `@INC`, and in *.par* files in the user plug-in directory.

Loads any given module only once, i.e. does not refresh if the plug-in has changed while Padre was running.

### "reload\_plugins"

For all registered plug-ins, unload them if they were loaded and then reload them.

### "alert\_new"

The `"alert_new"` method is called by the main window post-initialisation and checks for new plug-ins. If any are found, it presents a message to the user.

### "failed"

Returns the list of all plugins that the editor attempted to load but failed. Note that after a failed attempt, the plug-in is usually disabled in the configuration and not loaded again when the editor is restarted.

### "load\_plugin"

Given a plug-in name such as `"Foo"` (the part after `"Padre::Plugin"`), load the corresponding module, enable the plug-in and update the Plug-ins menu, etc.

### "unload\_plugin"

Given a plug-in name such as `"Foo"` (the part after `"Padre::Plugin"`), **disable** the plug-in, **unload** the corresponding module, and update the Plug-ins menu, etc.

### "reload\_plugin"

Reload a single plug-in whose name (without `"Padre::Plugin::"`) is passed in as first argument.

### "reload\_current\_plugin"

When developing a plug-in one usually edits the files belonging to the plug-in (The `"Padre::Plugin::Wonder"` itself or `"Padre::Documents::Wonder"` located in the same project as the plug-in itself.

This call and the appropriate menu option should be able to load (or reload) that plug-in.

### "on\_context\_menu"

Called by `"Padre::Wx::Editor"` when a context menu is about to be displayed. The method calls the context menu hooks in all plug-ins that have one for plug-in specific manipulation of the context menu.

## SEE ALSO

Padre, Padre::Config

## COPYRIGHT

Copyright 2008-2013 The Padre development team as listed in Padre.pm.

## LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.
