Files
Newton-Editor/plugins
itdominator aaadba3812 Clean up deprecated code and fix multiple issues
- Remove deprecated markdown_preview plugin and re-wrote
- Renamed alt_provider.py under words completer
- Fix words completion provider logic and cache handling
- Fix container orientations (VERTICAL -> HORIZONTAL) and add Separators
- Remove unused Gtk imports from search_replace plugin
- Fix event creation parameter order in source_file.py
- Fix typo in source_view.py (_load_pretify_json -> _load_prettify_json)
- Refactor webkit_ui with new load methods and enhanced settings
2026-02-20 00:10:41 -06:00
..
2026-01-04 11:42:27 -06:00

### Note
Copy the example and rename it to your desired name. Plugins define a ui target slot with the 'ui_target' requests data but don't have to if not directly interacted with.
Plugins must have a run method defined; though, you do not need to necessarily do anything within it. The run method implies that the passed in event system or other data is ready for the plugin to use.


### Manifest Example (All are required even if empty.)
```
class Manifest:
    name: str     = "Example Plugin"
    author: str   = "John Doe"
    version: str  = "0.0.1"
    support: str  = ""
    pre_launch: bool = False
    requests: {}  = {
        'pass_ui_objects': ["plugin_control_list"],
        'pass_events': True,
        'bind_keys': []
    }
```


### Requests
```
requests: {}  = {
    'pass_events': true,                                # If empty or not present will be ignored.
    "pass_ui_objects": [""],                            # Request reference to a UI component. Will be passed back as array to plugin.
    'bind_keys': [f"{name}||send_message:<Control>f"],
                  f"{name}||do_save:<Control>s"]        # Bind keys with method and key pare using list. Must pass "name" like shown with delimiter to its right.

}
```