Files
openidea/plugins/hello/plugin.toml
T
l0ng-ai fd1f465aeb feat(plugins): extension points, capability consent, async runtime and plugin API 1.0
Rework the plugin system per docs/plugin_plan.md (P0–P8):

- Extension-point registry (ide-extension) so new contribution types register
  without touching the kernel; languages, run detectors, providers, views and
  UI contributions go through it.
- Per-plugin capability consent with a risk-graded ledger; process
  capabilities are pinned to resolved binary paths and hashes.
- Async, actor-per-plugin Wasm runtime with lazy activation, cancellation,
  events, long-running tasks and idle reclamation.
- Plugin host moved into ide-host, shared by local and remote projects.
- Distribution: install/package tooling (openidea-plugin bin) and a static
  market index.
- WIT frozen as openidea:[email protected]; Rust SDK with mock host.
- Ten official validation plugins under plugins/official.
2026-11-04 02:41:46 +08:00

53 lines
1.5 KiB
TOML

id = "hello"
name = "Hello"
version = "0.3.0"
description = "Sample plugin: inserts today's date, counts words in the active file and shows a tool window with a tree."
authors = ["OpenIDEA contributors"]
change-notes = """
0.3.0 — a Greetings tool window (tree view), an editor context menu entry, a shortcut and a status bar item.
0.2.0 — plugin API 0.2: edits are versioned, one undo step for every cursor.
0.1.0 — first release: Insert Date and Word Count of Active File commands.
"""
engines.openidea = "^1.0"
wasm = "dist/plugin.wasm"
# Loaded the first time one of its commands runs.
activation = ["on-command:*", "on-view:greetings"]
[capabilities]
required = ["editor.read", "editor.write"]
# Static declarations make the commands visible before the plugin activates;
# the plugin may also register more at runtime with `register_command`.
[[contributes.commands]]
id = "insert-date"
title = "Hello: Insert Date"
category = "Hello"
[[contributes.commands]]
id = "word-count"
title = "Hello: Word Count of Active File"
category = "Hello"
# Declarative UI: shown without loading the plugin's code.
[[contributes.menus]]
menu = "editor.context"
command = "word-count"
[[contributes.keymaps]]
command = "insert-date"
key = "Ctrl+Alt+D"
mac = "Meta+Alt+D"
[[contributes.statusBar]]
id = "hello"
text = "Hello"
tooltip = "Word count of the active file"
command = "word-count"
# A tool window whose tree the plugin renders (view-provider).
[[contributes.views]]
id = "greetings"
title = "Greetings"
icon = "plugin"
location = "right"