Docs > Extensions > Interfaces
< Back
Each extension must implement a ed_ext_init()
callout,
executed at application loading.
Optionally, feature callouts ed_ext_xxx()
can be provided,
with “xxx” the name of the feature.
Currently supported callouts:
ed_ext_init
Intialize the extension.
ed_ext_init(app: EdApp) -> None
Called at application startup
phase.
Can be used to detect settings, setup keyboard shortcuts, load custom CSS…
[!warning] If an exception is raised at init, the extension will not be registered.
ed_ext_get_commands
Query commands to be added to the command-bar or menu.
ed_ext_get_commands(app: EdApp) -> dict[str, tuple[Callable[[EdWorkbench, EdBaseDocument|None, str], bool], str, bool|None, list[str]]]
Called at application startup
phase (for generating the extensions menu)
and when opening a workbench window (for populating the command-bar).
ed_ext_get_completion
Query additional source completion providers.
ed_ext_get_completion() -> tuple[GtkSource.CompletionProvider|GtkSource.HoverProvider, list[str]]
Called when opening a document that supports completion.
ed_ext_notif_wbench_opened
Called when opening a new window, before opening documents or project.
ed_ext_notif_wbench_opened(wbench: EdWorkbench) -> None
ed_ext_notif_wbench_saveall
Called when the saveall
action is triggered, after saving documents.
ed_ext_notif_wbench_saveall(wbench: EdWorkbench) -> None
Can be used to save additional data unrelated to documents, or to handle documents that could not have been saved.
ed_ext_notif_wbench_closed
Called when closing a window, before freeing documents.
ed_ext_notif_wbench_closed(wbench: EdWorkbench) -> None
ed_ext_notif_project_loaded
Called when a project is loaded.
ed_ext_notif_project_loaded(wbench: EdWorkbench, project: EdProject|None) -> None
Can be used to update project-specific UI elements, like completions for the command-bar.
ed_ext_notif_notebook_added
Called when a notebook (i.e. tabs group) is added.
ed_ext_notif_notebook_added(wbench: EdWorkbench, notebook: EdNotebook) -> None
ed_ext_notif_notebook_removed
Called when a notebook (i.e. tabs group) is removed.
ed_ext_notif_notebook_removed(wbench: EdWorkbench, notebook: EdNotebook) -> None
At this point the notebook is already empty, its documents were either closed or moved to other notebooks.
ed_ext_notif_doc_added
Called when a document tab is added.
ed_ext_notif_doc_added(wbench: EdWorkbench, doc: EdBaseDocument) -> None
The actual document content may not have be loaded at this point.
ed_ext_notif_doc_loaded
Called when a document loaded its content from disk.
ed_ext_notif_doc_loaded(doc: EdBaseDocument) -> None
Can be used to restore states or detect document properties.
ed_ext_notif_doc_symbols
Called when a document reloaded its symbols, before updating them in the sidebar.
ed_ext_notif_doc_symbols(doc: EdBaseDocument) -> None
Can be used to modify the symbols list.
ed_ext_notif_doc_save
Called when a document is going to be saved to disk.
ed_ext_notif_doc_save(doc: EdBaseDocument, gfile: Gio.File) -> None
Can be used for formatting contents before being saved.
ed_ext_notif_doc_closed
Called when a document tab is closed.
ed_ext_notif_doc_closed(wbench: EdWorkbench, doc: EdBaseDocument) -> None
This is not called when closing the whole workbench,
rely on ed_ext_notif_wbench_closed
instead.
< Back