lumide_api 1.0.0 copy "lumide_api: ^1.0.0" to clipboard
lumide_api: ^1.0.0 copied to clipboard

Host API for Lumide IDE plugins. Provides abstractions for plugin development.

1.0.0 #

🦊 Initial stable release for lumide_api. The API is now mostly feature-complete for Language Server Protocol (LSP) integrations and core editor extensions.

New features #

  • Languages API — Added languages.registerLanguageServer to register custom Language Server Protocol (LSP) providers for specific file extensions.
  • FileSystem API — Added fs.downloadFile to download files natively from the IDE with built-in progress tracking and optional .tar.gz/.zip extraction.

0.9.0 #

New features #

  • Quick Pick ImprovementsQuickPickItem now supports a tooltip field for rendering rich hover tooltips on individual options.

0.8.0 #

New features #

  • WorkspacegetRootUri() to get the workspace root path, findFiles(glob) to search files by glob pattern.
  • FileSystemisDirectory(path) to check if a path is a directory.
  • EditorgetDocumentText(uri) to read open document content, openDocument(uri) to open files, revealRange() to navigate to a specific location.
  • WindowshowConfirmDialog(message) for OK/Cancel dialogs, title parameter on showMessage().
  • ShellworkingDirectory parameter on run() to execute commands in a specific directory.

0.7.1 #

Improvements #

  • Plugin lifecycleLumidePlugin.run() now guarantees onDeactivate() is called even when the host IDE crashes or the stdio pipe breaks unexpectedly. This prevents orphaned child processes from plugins that spawn external processes.

0.7.0 #

New features #

  • Theming system — Support contributing color themes and icon themes via contributes.themes and contributes.iconThemes in plugin.yaml.
  • Manifest improvements — Added copyWith to LumideManifest for easier state modification.

0.6.0 #

New features #

  • WebViews — Create and manage custom UI panels via window.createWebviewPanel.
  • URL Opening — Open external URLs via window.openUrl.
  • Output Control — Added LumideOutputChannel.clear() to clear logs programmatically.

0.5.0 #

New features #

  • Activation EventsLumideManifest now supports activation_events to control plugin loading (e.g., onCommand, workspaceContains).
  • Quick Pick IconsQuickPickItem now supports iconPath (SVG/Image), enabled state, and isSeparator.
  • Status Bar IconsLumideStatusBar items now support iconPath for rendering SVGs.
  • Toolbar IconsLumideToolbar items now support iconPath for rendering SVGs.

0.4.0 #

New features #

  • Structured LoggingLumideOutputChannel.appendLog allows appending structured log records (LumideLogRecord) with levels, error details, and stack traces.

0.3.0 #

New features #

  • Toolbar API — Register items in the top toolbar via LumideToolbar. Supports icons, tooltips, alignment, and priority.
  • Terminal API — Create, control, and interact with integrated terminals via LumideTerminal.
  • Output API — Create and write to output channels via LumideOutputChannel.
  • Editor Selection APIgetSelectedText and replaceSelection for easier text manipulation.
  • Quick Pick ImprovementsshowQuickPick now supports rich QuickPickItem objects with descriptions, details, and icons.
  • Window PositioningshowQuickPick accepts an optional anchor position.

Breaking changes #

  • Commands APILumideCommands.registerCommand callback now accepts an optional Map<String, dynamic>? args parameter. Existing callbacks must be updated.

0.2.0+1 #

New features #

  • Commands API — Register commands for the Command Palette via LumideCommands.registerCommand().
  • Keybindings — Declare keybindings in plugin.yaml under contributes.keybindings.
  • Status Bar API — Create, update, show/hide, and dispose status bar items via LumideStatusBar.
  • Editor eventseditor.onDidChangeSelections and editor.onDidChangeActiveDocument push selection and focus changes to plugins.
  • Workspace eventsworkspace.onDidSaveTextDocument notifies when a document is saved.

Breaking changes #

  • workspace/onDidChangeConfiguration is now a host-to-plugin method (was previously plugin-to-IDE). Plugins receive configuration updates passively instead of polling.

0.1.0 #

  • Initial public release of the Lumide Plugin SDK.
  • Support for core plugin lifecycle management (onActivate, onDeactivate).
  • FileSystem API: Generic file/directory operations (read, write, list, exists).
  • Editor API: Active document tracking, text insertion, selection management, and range replacement.
  • Workspace API: Configuration management and document event listeners (open, close, change).
  • Window API: UI interaction methods (showMessage, showQuickPick, showInputBox).
  • Shell API: Controlled execution of host shell commands.
  • HTTP API: Standardized network requests (GET, POST).
  • Comprehensive JSON-RPC 2.0 based communication layer.
1
likes
160
points
703
downloads

Publisher

verified publishersofluffy.io

Weekly Downloads

Host API for Lumide IDE plugins. Provides abstractions for plugin development.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

json_rpc_2, stream_channel, yaml

More

Packages that depend on lumide_api