# Language Tools & LSP Tuim provides out-of-the-box syntax highlighting, autocompletion, diagnostics, and language server management through an integrated stack of Treesitter, blink.cmp, and Mason. --- ## 1. Syntax Highlighting via Treesitter Treesitter is loaded eagerly at startup to ensure instant, accurate, semantic syntax highlighting. ### Precompiled Parsers (19 Default Languages) The standard Tuim setup installs and precompiles parsers and highlight queries for: * **Systems & General**: Zig, C, C++, Rust, Go * **Scripting**: Python, Lua, Bash * **Web**: JavaScript, TypeScript, TSX, HTML, CSS, JSON * **Vim/Editor**: Vim, Vimdoc, Query * **Documentation**: Markdown, Inline Markdown To verify your installed parsers, queries, and startup loading: ```bash TUIM_TEST_PLUGIN_DATA=~/.local/share/tuim python3 tests/default_runtime.py ``` --- ## 2. Project Detection & Language Server Recommendations When you open a project, Tuim inspects root directory markers to identify the programming language and recommends the appropriate Language Server Protocol (LSP) package: | Language | Recognized Markers | Recommended Server | | :--- | :--- | :--- | | **Zig** | `build.zig` | `zls` | | **Rust** | `Cargo.toml` | `rust_analyzer` | | **Python** | `pyproject.toml`, `requirements.txt` | `pyright` | | **Go** | `go.mod` | `gopls` | | **C / C++** | `CMakeLists.txt`, `compile_commands.json` | `clangd` | | **JS / TS** | `package.json` | `ts_ls` | | **Lua** | `.luarc.json`, `stylua.toml` | `lua_ls` | > [!NOTE] > If no project markers are detected in the root directory, Tuim falls back to the active buffer's file extension (`.zig`, `.rs`, `.py`, `.go`, `.c`, `.cpp`, `.js`, `.ts`, `.lua`) to recommend the appropriate server. Tuim never automatically installs tools without your initiation. --- ## 3. Managing LSP Servers with Mason Open **Language tools** to inspect installed and recommended packages: * From sidebar: Click `< Workspace` → **Language tools**. * From Command Palette: Press F1 → **Language tools**. * From Settings: Open F1 → **Settings** → **Plugins** → **Mason Settings**. ### The Language Tools Panel Shows: * **Health Summary**: Status of active LSP connections and runtime environment. * **Active Servers**: Language servers currently attached to open buffers. * **Recommended Packages**: Servers detected based on current project markers. * **Installed Tools**: Installed language servers, linters, and formatters. * **Missing Executables**: Notifies you if an installed tool requires a host dependency (e.g. Node.js or a specific runtime). --- ## 4. Autocompletion & In-line Diagnostics * **Completion Engine**: Powered by `blink.cmp` with preloaded `friendly-snippets`. As you type, fuzzy completion suggestions appear instantly with minimal latency. * **Diagnostics**: Syntax errors, warnings, and hints appear directly inline in the editor gutter and beside offending lines. * **Hover Documentation**: Press K in Normal mode to view type signatures and documentation popups for the symbol under your cursor. --- ## Next Steps Learn how to connect AI coding assistants in **[AI Coding Assistants](AI-Coding-Assistants.md)**.