mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-08 08:52:12 +00:00
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.
53 lines
1.5 KiB
TOML
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"
|