(NII-Proposal) add plugin architecture for file actions #841
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
Add a plugin architecture for file browser actions (context menu and toolbar). Extensions are included in the codebase but can be enabled/disabled at build time via
extensions.config.ts.Summary of Changes
FileActionExtensioninterface for menu/toolbar/both targetsExtensionRegistryservice for dynamic extension loadingextensions.config.tsfor build-time configurationSee docs/file-extensions.md for usage.
Screenshot(s)
Example: Copy Link
extensions.config.ts:
Copy Link (Menu Item):

Example: OnlyOffice Integration (dummy)
extensions.config.ts:
Edit by OnlyOffice(Menu Item/Toolbar Item in the file detail):
Create File (Toolbar Item in the file list):
Side Effects
prebuild,prestart,pretestnpm scripts that generateextensions.config.tssrc/app/extensions.config.tsis now git-ignored (generated fromextensions.config.default.ts)QA Notes
extensions.config.ts