-
Notifications
You must be signed in to change notification settings - Fork 0
Plugin Compatibility Guide
Tuim is a Neovim UI client, not a traditional terminal shell executing Neovim. Plugins run inside an isolated Neovim instance started with --clean and ext_multigrid enabled, communicating with Tuim's Zig frontend over MessagePack-RPC.
Understanding this architecture is key to knowing which plugins work seamlessly and which require adaptation.
The following core plugins are bundled and verified via local verification scripts (scripts/plugin_smoke.sh) and continuous integration test suites (tests/plugin_manager.py and tests/plugins_ui.py):
| Plugin | Verified Role | Notes |
|---|---|---|
| lazy.nvim | Plugin lifecycle manager | Automatically bootstrapped. Provides update and sync tools. |
| nvim-treesitter | Syntax highlighting & queries | Pinned version; includes 19 precompiled parsers. |
| mason.nvim | LSP/DAP/Linter package manager | Registry UI and tool installer. |
| nvim-lspconfig | LSP client configurations | Preconfigured client hooks. |
| blink.cmp | High-performance completion | Fast popup completion with snippet expansion. |
| telescope.nvim | Fuzzy picker & finder | Adapted for Tuim multigrid floating window hooks. |
| alpha-nvim | Dashboard UI | Fast dashboard module. |
| harpoon | Quick file bookmarks | Mark and jump module. |
Plugins that interact with standard Neovim abstractions generally work out of the box:
-
Buffer & Window Tools: Formatting tools, linters, comment helpers, text objects, surround plugins (
mini.surround,nvim-surround). - LSP & Code Intelligence: Diagnostic highlighters, signature helpers, code action popups, refactoring engines.
- Treesitter Extensions: Context highlighters, text object motions, indentation guides.
-
Floating Window Pickers: Pickers rendered via standard Neovim floating windows (
nvim_open_win). - Themes & Colorschemes: Pure Vim/Lua colorschemes that define highlight groups.
Because Tuim owns the terminal frontend and renders over MessagePack-RPC, the following plugin types are unsupported unless specifically adapted:
| Incompatible Type | Why It Fails |
|---|---|
| GUI-Specific Plugins | Plugins requiring Neovide (vim.g.neovide), Goneovim, or VimR APIs. |
| Direct Terminal Escape Sequences | Terminal image viewers (Kitty graphics, Sixel, iTerm2 image protocol) that write escape codes directly to stdout. In Tuim, Neovim's stdout is the MessagePack-RPC socket. |
| Terminal Hijackers | Plugins that attempt to put the outer terminal into raw mode or replace the outer terminal screen. |
| External Window Manipulators | Plugins that assume control of outer tmux panes or window managers rather than Neovim splits. |
| System Configuration Polluters | Plugins that insist on reading or modifying ~/.config/nvim. Tuim strictly uses NVIM_APPNAME=tuim. |
When testing a plugin from the marketplace:
- Search and install the plugin from Extensions โ Discover.
- Restart Tuim.
- If the plugin fails or causes an error on boot, start in Recovery Mode:
TUIM_DISABLE_PLUGINS=1 tuim
- Open Extensions โ Installed, highlight the plugin, and press d to disable or u to uninstall.
Tuim Repository ยท Releases ยท Issue Tracker ยท Website ยท Licensed under MIT
- Workspace Overview
- Editing Modes
- Keybindings & Shortcuts
- File & Buffer Management
- Integrated Terminal
- Git Integration
- Extensions & Plugins
- Language Tools & LSP
- AI Coding Assistants