{"id":28744412,"url":"https://github.com/floatingman-ltd/arcane-centaur","last_synced_at":"2026-04-29T19:33:39.856Z","repository":{"id":298613167,"uuid":"1000397872","full_name":"floatingman-ltd/arcane-centaur","owner":"floatingman-ltd","description":"A working copy of NeoVIM.","archived":false,"fork":false,"pushed_at":"2026-04-27T19:18:01.000Z","size":484,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-27T21:14:08.536Z","etag":null,"topics":["lua","neovim","neovim-configuration"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/floatingman-ltd.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-11T18:05:31.000Z","updated_at":"2026-04-21T17:05:06.000Z","dependencies_parsed_at":"2026-04-02T20:02:43.660Z","dependency_job_id":null,"html_url":"https://github.com/floatingman-ltd/arcane-centaur","commit_stats":null,"previous_names":["floatingman-ltd/arcane-centaur"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/floatingman-ltd/arcane-centaur","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/floatingman-ltd%2Farcane-centaur","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/floatingman-ltd%2Farcane-centaur/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/floatingman-ltd%2Farcane-centaur/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/floatingman-ltd%2Farcane-centaur/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/floatingman-ltd","download_url":"https://codeload.github.com/floatingman-ltd/arcane-centaur/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/floatingman-ltd%2Farcane-centaur/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32441167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T18:12:22.909Z","status":"ssl_error","status_checked_at":"2026-04-29T18:11:33.322Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lua","neovim","neovim-configuration"],"created_at":"2025-06-16T12:00:45.645Z","updated_at":"2026-04-29T19:33:39.839Z","avatar_url":"https://github.com/floatingman-ltd.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Magical NeoVIM\n\nRepresenting a NeoVIM installation that looks and feels like I'm in coding land.\n\n## Installation\n\nClone this repo into your Neovim config directory:\n\n```sh\ngit clone https://github.com/floatingman-ltd/arcane-centaur ~/.config/nvim\n```\n\nOn first launch, [lazy.nvim](https://github.com/folke/lazy.nvim) will bootstrap itself and install all plugins automatically.\n\n### Prerequisites\n\n| Dependency | Purpose | Install hint |\n|---|---|---|\n| **Neovim ≥ 0.9** | Editor | `sudo snap install nvim --classic` |\n| **build-essential, tree** | General tooling | `sudo apt install build-essential tree -y` |\n| **Lua ≥ 5.1** *(5.4 recommended)* | Required by lazy.nvim's LuaRocks support | `sudo apt install lua5.4` |\n| **LuaRocks** | Plugin dependency manager used by lazy.nvim | `sudo apt install luarocks` |\n| **A [Nerd Font][]** *(optional)* | File-type icons in the tree and fuzzy-finder | See below |\n\n[Nerd Font]: https://www.nerdfonts.com/\n\nLanguage-specific prerequisites (LSP servers, REPLs, runtimes) are documented in each language guide:\n[Markdown](docs/guides/markdown.md) · [Diagrams](docs/guides/diagrams.md) · [Confluence](docs/guides/confluence.md) · [Jira](docs/guides/jira.md) · [F#](docs/guides/fsharp.md) · [Haskell](docs/guides/haskell.md) · [Lisp / Clojure / Scheme](docs/guides/lisp.md) · [Presentations / MARP](docs/guides/presentations.md) · [REST Client](docs/guides/rest.md)\n\n### Recommended Terminal — GNOME Terminal\n\n[GNOME Terminal](https://help.gnome.org/users/gnome-terminal/stable/) is the\ndefault terminal emulator for this configuration.  It ships with most GNOME-based\nLinux distributions and is powered by the VTE library.  Key features:\n\n* **Nerd Font support** — icons render correctly once a Nerd Font is installed\n  and selected as the profile font (*Preferences → Profiles → Custom font*).\n* **True-colour support** — 24-bit RGB colour is supported natively.\n* **System integration** — tightly integrated with the GNOME desktop\n  environment, no additional installation required on Ubuntu/Fedora/Debian.\n\nGNOME Terminal does **not** auto-detect Nerd Font usage (see [Terminal\nAuto-Detection](#terminal-auto-detection) below).  After installing a Nerd\nFont, set the override in `lua/options.lua`:\n\n```lua\nvim.g.have_nerd_font = true\n```\n\n#### Installing GNOME Terminal\n\nGNOME Terminal is pre-installed on most GNOME-based distributions.  If it is\nnot present:\n\n| Platform | Command |\n|---|---|\n| **Ubuntu / Debian** | `sudo apt install gnome-terminal` |\n| **Fedora** | `sudo dnf install gnome-terminal` |\n| **Arch Linux** | `sudo pacman -S gnome-terminal` |\n\n#### Windows Terminal (WSL)\n\n[Windows Terminal](https://aka.ms/terminal) is fully supported when running\nNeovim inside **WSL** (Windows Subsystem for Linux).  The config auto-detects\nit via the `WT_SESSION` environment variable and enables Nerd Font icons and\nundercurl automatically.\n\n**Clipboard integration** — on WSL the config uses\n[`win32yank.exe`](https://github.com/equalsraf/win32yank) for fast system\nclipboard access.  Install it once on the **Windows** side:\n\n```powershell\n# From a Windows PowerShell / Terminal prompt:\nscoop install win32yank      # or: choco install win32yank\n```\n\nThe executable must be on your Windows `PATH` (which WSL inherits by default).\nVerify with:\n\n```sh\nwhich win32yank.exe   # should print a /mnt/c/... path\n```\n\n**Nerd Font setup for Windows Terminal** — install a Nerd Font on Windows,\nthen select it in Windows Terminal settings:\n\n1. Download *FiraCode Nerd Font* from\n   \u003chttps://www.nerdfonts.com/font-downloads\u003e.\n2. Install it on **Windows** (right-click → *Install for all users*).\n3. Open Windows Terminal → *Settings → Profiles → Defaults → Appearance →\n   Font face* and select **FiraCode Nerd Font**.\n\n\u003e **Tip:** If `win32yank.exe` is not available, Neovim falls back to its\n\u003e built-in clipboard provider detection (`xclip`, `xsel`, etc.), which may be\n\u003e slower or require an X server.\n\n#### Secondary Terminal — TTY Console\n\nThe Linux TTY console (accessed with **Ctrl+Alt+F2** through **F6**) is\nsupported as a secondary terminal.  It is useful in minimal or headless\nenvironments where no graphical display is available.\n\nKeep in mind that the TTY console does not support Nerd Font glyphs or\n24-bit colour, so icon-based plugins fall back to plain Unicode glyphs\nautomatically.  Undercurl is rendered as a plain underline.\n\n\u003e **Other terminals that work well:** [Alacritty](https://alacritty.org/)\n\u003e also has full Nerd Font and undercurl support.  The Neovim config\n\u003e auto-detects it and enables the appropriate features.\n\n#### Nerd Font Setup\n\n`nvim-tree` and `fzf-lua` can display file-type icons when a patched\n[Nerd Font](https://www.nerdfonts.com/) is installed **and** selected as the\nterminal font.  Without one the config automatically falls back to plain\nUnicode glyphs, so icons are entirely optional.\n\nTo install a Nerd Font:\n\n1. Download *FiraCode Nerd Font* from\n   \u003chttps://www.nerdfonts.com/font-downloads\u003e.\n2. Install it system-wide or for the current user.\n3. Select it in your terminal emulator (GNOME Terminal: *Preferences → Profiles → Custom font*,\n   or see your terminal's documentation).\n\n#### Terminal Auto-Detection\n\nThe configuration automatically detects which terminal emulator is running\n(via `$TERM_PROGRAM`, `$VTE_VERSION`, and related environment variables) and\nadjusts its behaviour:\n\n| Terminal | Nerd Font icons | Undercurl | Notes |\n|---|---|---|---|\n| **GNOME Terminal** (VTE) | ❌ fallback glyphs | ❌ → underline | **Default** — set `vim.g.have_nerd_font = true` in `lua/options.lua` after installing a Nerd Font |\n| **Windows Terminal** (WSL) | ✅ auto-enabled | ✅ native | Clipboard via `win32yank.exe`; see [Windows Terminal (WSL)](#windows-terminal-wsl) |\n| **TTY Console** | ❌ fallback glyphs | ❌ → underline | Secondary — no graphical font support |\n| **Alacritty** | ✅ auto-enabled | ✅ native | |\n| **Other / unknown** | ❌ fallback glyphs | ❌ → underline | Override as above if your terminal supports Nerd Fonts |\n\nDetection logic lives in `lua/config/terminal.lua`.  If the auto-detection is\nwrong for your setup you can still force the flag in `lua/options.lua`:\n\n```lua\nvim.g.have_nerd_font = true   -- or false\n```\n\n## Working with Markdown\n\n→ See **[docs/guides/markdown.md](docs/guides/markdown.md)** for the full guide: single-file browser preview, markserv Docker server for cross-page links, in-editor navigation, and PDF export.\n\n- **`,p`** — toggle `markdown-preview.nvim` (single file with PlantUML/Mermaid)\n- **`,sp`** — open in markserv Docker server — cross-page links and PlantUML/Mermaid diagrams rendered\n- **`\u003cCR\u003e`** — follow a link to another `.md` file in the editor (mkdnflow.nvim)\n- **`,cc`** — publish current file to Confluence (`MdToConfluence`)\n\n## Working with Confluence\n\n→ See **[docs/guides/confluence.md](docs/guides/confluence.md)** for the full guide: authentication, page map setup, diagram rendering, conflict detection, and troubleshooting.\n\n| Keys | Action |\n|---|---|\n| `,cc` | Publish current file to Confluence (`MdToConfluence`) |\n| `,cf` | Pull current Confluence page back to local file (`MdFromConfluence`) |\n| `,ck` | Fetch Confluence page comments to sidecar file (`MdConfluenceComments`) |\n\n## Working with Jira\n\n→ See **[docs/guides/jira.md](docs/guides/jira.md)** for the full guide: authentication, project map setup, and troubleshooting.\n\nRequires `JIRA_EMAIL`, `JIRA_API_TOKEN`, and `JIRA_BASE_URL` environment variables.\n\n| Keys | Mode | Action |\n|---|---|---|\n| `,ji` | Normal | Create a Jira Task issue (`JiraCreateIssue`) |\n| `,js` | Normal | Create a Jira Story (`JiraCreateStory`) |\n| `,ji` | Visual | Create a Task with selection as description |\n| `,js` | Visual | Create a Story with selection as description |\n\n## Working with Diagrams\n\n→ See **[docs/guides/diagrams.md](docs/guides/diagrams.md)** for the full guide: PlantUML and Mermaid in Markdown, standalone `.puml` files, Docker server setup, keybindings, and **exporting to PDF**.\n\nMermaid fenced code blocks (`` ```mermaid `` … `` ``` ``) render natively in the browser preview — **no extra plugin required**. PlantUML rendering uses a local Docker server.\n\n## Working with F#\n\n→ See **[docs/guides/fsharp.md](docs/guides/fsharp.md)** for the full guide: iron.nvim REPL, fsautocomplete LSP, Quick Start, and Typical Workflow.\n\n## Working with Haskell\n\n→ See **[docs/guides/haskell.md](docs/guides/haskell.md)** for the full guide: haskell-tools.nvim, hls LSP, and GHCi REPL keybindings.\n\n## Working with Lisp\n\n→ See **[docs/guides/lisp.md](docs/guides/lisp.md)** for the full guide: Conjure, vim-sexp, parinfer, rainbow-delimiters, Quick Start, and Typical Workflow.\n\n## Working with Presentations (MARP)\n\n→ See **[docs/guides/presentations.md](docs/guides/presentations.md)** for the full guide: MARP live preview via Docker, export to PPTX / HTML / PDF, and keybindings.\n\n## Working with Git\n\nGit integration is provided by two complementary plugins:\n\n* **vim-fugitive** — full git command interface (`:Git status`, `:Git commit`, `:Git log`, etc.)\n* **gitsigns.nvim** — live gutter signs showing added / changed / removed lines, with hunk-level staging, resetting, and inline blame\n\n### Quick keybindings\n\n| Keys | Action |\n|---|---|\n| `\u003cleader\u003egs` | Open git status window |\n| `\u003cleader\u003egb` | Blame current file |\n| `\u003cleader\u003egl` | Git log |\n| `\u003cleader\u003egd` | Diff unstaged changes |\n| `\u003cleader\u003egp` | Push |\n| `]h` / `[h` | Jump to next / previous changed hunk |\n| `\u003cleader\u003ehs` | Stage hunk under cursor |\n| `\u003cleader\u003ehr` | Reset hunk under cursor |\n| `\u003cleader\u003ehb` | Show full blame for current line |\n\n→ See **[docs/cheatsheets/git.md](docs/cheatsheets/git.md)** for the complete reference.\n\n\u003e **Conflict note:** `\u003cleader\u003ehs` is also bound to *Hoogle search* in Haskell\n\u003e buffers (buffer-local, so it takes priority there). Use the fugitive status\n\u003e window to stage changes while editing Haskell files.\n\n## Working with REST APIs (kulala.nvim)\n\n→ See **[docs/guides/rest.md](docs/guides/rest.md)** for the full guide: writing `.http` files, environment variables, and typical workflow.\n\nWrite HTTP requests in `.http` files and run them directly from Neovim with the [kulala.nvim](https://github.com/mistweaverco/kulala.nvim) plugin.\n\n\u003e **Prerequisite:** the `tree-sitter` CLI must be on your `PATH`. kulala.nvim compiles a custom `kulala_http` grammar on first launch. Install it with `npm install -g tree-sitter-cli` (or `cargo install tree-sitter-cli`). See [docs/guides/rest.md](docs/guides/rest.md) for full install instructions.\n\n| Keys | Action |\n|---|---|\n| `,r` | Run request under cursor |\n| `,l` | Re-run last request |\n| `,o` | Open result pane |\n| `,e` | Select environment |\n\n## LSP Support\n\nLSP servers are configured in `lua/config/lsp.lua`. See each language's doc for server-specific setup. All servers share these keybindings (available in any LSP-enabled buffer):\n\nKeybindings:\n\n| Keys | Action |\n|---|---|\n| `gd` | Go to definition |\n| `K` | Hover documentation |\n| `gr` | Find references |\n| `\u003cleader\u003ern` | Rename symbol |\n| `\u003cleader\u003eca` | Code action |\n| `\u003cleader\u003ee` | Show diagnostic float |\n| `[d` / `]d` | Previous / next diagnostic |\n\n## General Keybindings\n\n→ See **[docs/cheatsheets/index.md](docs/cheatsheets/index.md)** for the complete one-page keybinding reference.\n\nLeader key is **Space**.\n\n| Keys | Mode | Action |\n|---|---|---|\n| `Ctrl-h/j/k/l` | Normal | Navigate between splits |\n| `Ctrl-↑/↓/←/→` | Normal | Resize splits |\n| `\u003c` / `\u003e` | Visual | Indent/outdent and reselect |\n| `\u003cleader\u003en` or `Ctrl-n` | Normal | Open file tree |\n| `Ctrl-t` | Normal | Toggle file tree |\n| `Ctrl-f` | Normal | Find current file in tree |\n| `Ctrl-j` | Insert | Accept full Copilot suggestion |\n| `Alt-f` | Insert | Accept next word of Copilot suggestion |\n| `\u003cleader\u003et` | Normal | Toggle terminal split |\n| `\u003cleader\u003ef` | Normal / Visual | Format buffer (or selection) |\n| `\u003cleader\u003egcs` | Normal / Visual | Copilot CLI: suggest (send to `copilot`) |\n| `\u003cleader\u003egce` | Normal / Visual | Copilot CLI: explain (send to `copilot`) |\n| `\u003cleader\u003eosn` | Normal | OpenSpec: create new change |\n| `\u003cleader\u003eoss` | Normal | OpenSpec: show status |\n| `\u003cleader\u003eosl` | Normal | OpenSpec: list all changes |\n\n## Auto-Completion\n\nAuto-completion is powered by [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) and draws from LSP, snippets, open buffers, file paths, and (when spell-checking is active) the spell dictionary.\n\n### Triggering the menu\n\nThe completion menu opens automatically as you type.  To open it on demand in\ninsert mode, press **`Alt+Space`** (`\u003cM-Space\u003e`).\n\n### Navigating the menu\n\nOnce the menu is open, use **`j`** and **`k`** to move through suggestions —\nmatching the standard Neovim screen-movement keys.  Both keys fall back to\ninserting the literal character when the menu is not visible.\n\n| Key | Action |\n|---|---|\n| `j` | Move to the next suggestion |\n| `k` | Move to the previous suggestion |\n| `Ctrl-f` | Scroll the documentation preview down |\n| `Ctrl-b` | Scroll the documentation preview up |\n\n### Selecting the highlighted entry\n\nPress **`Enter`** (`\u003cCR\u003e`) to confirm and insert the currently highlighted\nsuggestion.  If nothing is highlighted, `Enter` inserts a newline as normal\n(selection is never forced automatically).\n\n### Cancelling the menu\n\nPress **`Ctrl+e`** to dismiss the completion menu and return to normal typing.\n\n## Supported Languages\n\n| Language | Treesitter | LSP | REPL | Structural Editing | Guide |\n|---|---|---|---|---|---|\n| Clojure | ✅ | — | ✅ nREPL (Conjure) | ✅ vim-sexp + parinfer | [docs/guides/lisp.md](docs/guides/lisp.md) |\n| Common Lisp | ✅ | ✅ cl_lsp | ✅ Swank (Conjure) | ✅ vim-sexp + parinfer | [docs/guides/lisp.md](docs/guides/lisp.md) |\n| F# | ✅ | ✅ fsautocomplete | ✅ dotnet fsi (iron.nvim) | — | [docs/guides/fsharp.md](docs/guides/fsharp.md) |\n| Fennel | — | — | ✅ (Conjure) | ✅ parinfer | [docs/guides/lisp.md](docs/guides/lisp.md) |\n| Haskell | — | ✅ haskell-tools | ✅ GHCi | — | [docs/guides/haskell.md](docs/guides/haskell.md) |\n| HTTP | ✅ | — | — | — | [docs/guides/rest.md](docs/guides/rest.md) |\n| Lua | ✅ | — | — | — | — |\n| Markdown | ✅ | ✅ marksman | — | — | [docs/guides/markdown.md](docs/guides/markdown.md) |\n| Mermaid *(in Markdown)* | ✅ *(markdown)* | — | — | — | [docs/guides/diagrams.md](docs/guides/diagrams.md) |\n| MARP (slides) | ✅ *(markdown)* | — | — | — | [docs/guides/presentations.md](docs/guides/presentations.md) |\n| PlantUML | ✅ | — | — | — | [docs/guides/diagrams.md](docs/guides/diagrams.md) |\n| Scheme | ✅ | — | ✅ built-in (Conjure) | ✅ vim-sexp + parinfer | [docs/guides/lisp.md](docs/guides/lisp.md) |\n\n## Copilot Model Configuration\n\nEdit `lua/plugins/copilot.lua` and uncomment the desired `vim.g.copilot_model` line:\n\n```lua\nconfig = function()\n  vim.g.copilot_model = \"claude-sonnet-4-5\"   -- active\n  -- vim.g.copilot_model = \"gpt-4o\"\n  -- vim.g.copilot_model = \"gpt-4.1\"\n  -- vim.g.copilot_model = \"claude-opus-4-5\"\nend,\n```\n\nCommon values: `\"gpt-4o\"`, `\"gpt-4.1\"`, `\"claude-sonnet-4-5\"`.\n\n## GitHub Copilot CLI\n\nThe [GitHub Copilot CLI](https://github.com/github/copilot-cli) (`@github/copilot` npm package) brings Copilot AI assistance to your terminal and is integrated directly into Neovim.\n\n### Installation\n\n```sh\n# Requires Node.js 22+\nnpm install -g @github/copilot\n\n# Authenticate on first use\ncopilot\n# then enter: /login\n```\n\n### In-editor usage\n\n| Keys | Action |\n|---|---|\n| `\u003cleader\u003egcs` | Send current selection (or buffer) to `copilot` for a shell command suggestion |\n| `\u003cleader\u003egce` | Send current selection (or buffer) to `copilot` for a code explanation |\n\nResults appear in a floating window. Close with `q` or `\u003cEsc\u003e`.\n\nYou can also press **`\u003cleader\u003et`** to open the built-in terminal split and use `copilot` interactively.\n\n→ See **[docs/guides/ai-tools.md](docs/guides/ai-tools.md)** for the full guide including OpenSpec and Serena setup.\n\n\u003e **Serena MCP server prerequisites:** Node.js 18+ is required. Install Serena with:\n\u003e ```sh\n\u003e npm install -g @oramasearch/serena\n\u003e ```\n\u003e Or run it without a global install via `npx @oramasearch/serena`.\n\n## Plugin Overview\n\nPlugins are managed by [lazy.nvim](https://github.com/folke/lazy.nvim) and organized in `lua/plugins/`:\n\n| File | Plugins | Cheatsheet |\n|---|---|---|\n| `colorscheme.lua` | TokyoNight theme (moon / storm / night / day variants) | — |\n| `conform.lua` | Formatting (format-on-save + `\u003cleader\u003ef`) for Lisp and F# filetypes | [formatting.md](docs/cheatsheets/formatting.md) |\n| `copilot.lua` | Copilot inline completions + Serena MCP server config | [copilot.md](docs/cheatsheets/copilot.md) · [ai-tools.md](docs/cheatsheets/ai-tools.md) |\n| `dotnet.lua` | iron.nvim REPL integration for F# (`dotnet fsi`) and C# (`csharprepl`); roslyn.nvim C# LSP | [fsharp.md](docs/cheatsheets/fsharp.md) · [dotnet.md](docs/cheatsheets/dotnet.md) |\n| `fzf-lua.lua` | Fuzzy finder | [fzf.md](docs/cheatsheets/fzf.md) |\n| `git.lua` | vim-fugitive (`:Git` commands) + gitsigns.nvim (hunk signs \u0026 staging) | [git.md](docs/cheatsheets/git.md) |\n| `haskell.lua` | haskell-tools.nvim (GHCi REPL + HLS integration) | [haskell.md](docs/cheatsheets/haskell.md) |\n| `html.lua` | Bracey HTML live preview | [html.md](docs/cheatsheets/html.md) |\n| `init.lua` | vim-repeat, vim-sensible, vim-surround, vim-unimpaired, vim-airline (statusline), lspconfig | [lsp.md](docs/cheatsheets/lsp.md) · [surround.md](docs/cheatsheets/surround.md) · [unimpaired.md](docs/cheatsheets/unimpaired.md) |\n| `lisp.lua` | Conjure, vim-sexp, nvim-parinfer, rainbow-delimiters | [lisp.md](docs/cheatsheets/lisp.md) |\n| `markdown.lua` | markdown-preview.nvim (browser preview, PlantUML via Docker server); `:MdToPdf` PDF export; `:MdToConfluence` / `:MdFromConfluence` / `:MdConfluenceComments`; `:JiraCreateIssue` / `:JiraCreateStory` | [markdown.md](docs/cheatsheets/markdown.md) |\n| `mkdnflow.lua` | mkdnflow.nvim (cross-page link navigation: `\u003cCR\u003e` follow, `\u003cBS\u003e` back) | [markdown.md](docs/cheatsheets/markdown.md) |\n| `nvim-cmp.lua` | nvim-cmp + completion sources | [completion.md](docs/cheatsheets/completion.md) |\n| `nvim-tree.lua` | File explorer tree | [file-tree.md](docs/cheatsheets/file-tree.md) |\n| `plantuml.lua` | plantuml-syntax + `:PumlPreview` command (browser preview via Docker server) | [plantuml.md](docs/cheatsheets/plantuml.md) |\n| `rest.lua` | kulala.nvim HTTP client (run requests from `.http` files) | [rest.md](docs/cheatsheets/rest.md) |\n| `treesitter.lua` | nvim-treesitter | — |\n| `vim-commentary.lua` | Toggle comments with `gcc` | [comments.md](docs/cheatsheets/comments.md) |\n\n## Project Structure\n\n```\ninit.lua                    # Entry point\nlua/\n  options.lua               # Editor options (tabs, search, UI)\n  keymaps.lua               # Global keybindings\n  loader/init.lua           # lazy.nvim bootstrap\n  config/\n    confluence.lua          # Confluence publish command (MdToConfluence)\n    jira.lua                # Jira issue/story creation (JiraCreateIssue, JiraCreateStory)\n    copilot_cli.lua         # CopilotSuggest / CopilotExplain commands (copilot CLI)\n    lsp.lua                 # LSP server setup (cl_lsp, fsautocomplete, marksman)\n    marp.lua                # MARP presentation commands (preview + export)\n    mdpdf.lua               # Markdown → PDF export command (MdToPdf)\n    mdpreview.lua           # Markdown markserv server preview command (MdServerPreview)\n    openspec.lua            # OpenspecNew / OpenspecStatus / OpenspecList commands\n    terminal.lua            # Terminal detection \u0026 capability flags\n    treesitter.lua          # (config managed in plugins/treesitter.lua)\n    util.lua                # Shared helpers (open_url: cross-platform browser opener)\n  plugins/\n    colorscheme.lua         # TokyoNight theme (moon/storm/night/day)\n    conform.lua             # Formatting for Lisp and F# filetypes\n    copilot.lua             # Copilot inline completions + Serena MCP server config\n    dotnet.lua              # F# + C# REPLs via iron.nvim; roslyn.nvim C# LSP\n    fzf-lua.lua             # Fuzzy finder\n    git.lua                 # Git (vim-fugitive + gitsigns.nvim)\n    haskell.lua             # haskell-tools.nvim (GHCi REPL + HLS)\n    html.lua                # Bracey HTML live preview\n    init.lua                # Bare-string plugins (tpope, airline, lspconfig)\n    lisp.lua                # Lisp ecosystem plugins\n    markdown.lua            # markdown-preview.nvim (browser preview)\n    mkdnflow.lua            # mkdnflow.nvim (cross-page link navigation)\n    nvim-cmp.lua            # Completion engine + sources\n    nvim-tree.lua           # File tree\n    plantuml.lua            # plantuml-syntax + PumlPreview command\n    rest.lua                # kulala.nvim HTTP client (run requests from .http files)\n    treesitter.lua          # nvim-treesitter\n    vim-commentary.lua      # Comment toggling\nafter/ftplugin/\n  clojure.lua               # Clojure indent settings\n  fsharp.lua                # F# indent settings (4-space) \u0026 localleader\n  haskell.lua               # Haskell-tools keybindings\n  http.lua                  # REST client localleader \u0026 keymaps\n  lisp.lua                  # Lisp indent settings \u0026 lispwords\n  markdown.lua              # Markdown localleader, preview keymap, MARP commands, MdToPdf, MdServerPreview, MdToConfluence, JiraCreateIssue/Story\n  plantuml.lua              # PlantUML localleader \u0026 PumlPreview keymap\n  scheme.lua                # Scheme indent settings\ndocker/\n  marp/                     # Docker Compose for MARP presentation server\n  markserv/                 # Docker + Compose for markdown preview server (cross-page links, PlantUML/Mermaid diagrams)\n  md2pdf/                   # Pandoc Lua filter for Markdown → PDF with PlantUML\n  plantuml-server/          # Docker Compose for PlantUML render server\n  sbcl-swank/               # Docker Compose for SBCL/Swank REPL\ndocs/\n  cheatsheets/\n    comments.md             # vim-commentary\n    completion.md           # nvim-cmp\n    copilot.md              # GitHub Copilot\n    editing.md              # Visual-mode editing\n    file-tree.md            # nvim-tree\n    formatting.md           # conform.nvim\n    fsharp.md               # iron.nvim / dotnet fsi\n    fzf.md                  # fzf-lua fuzzy finder\n    haskell.md              # haskell-tools REPL \u0026 HLS\n    html.md                 # Bracey HTML live preview\n    index.md              # Main keybinding reference (links to plugin sheets)\n    lisp.md                 # Conjure + vim-sexp\n    lsp.md                  # LSP keybindings\n    markdown.md             # Markdown preview + MARP + markserv + Confluence\n    navigation.md           # Window navigation \u0026 terminal\n    plantuml.md             # PlantUML preview\n    rest.md                 # REST client (kulala.nvim)\n  guides/\n    confluence.md           # Confluence publishing guide (MdToConfluence)\n    jira.md                 # Jira issue/story creation guide\n    diagrams.md             # Markdown + PlantUML diagram guide\n    fsharp.md               # F# guide\n    haskell.md              # Haskell guide\n    lisp.md                 # Lisp / Clojure / Scheme / Fennel guide\n    markdown.md             # Markdown preview guide (markserv, cross-page links)\n    presentations.md        # MARP presentation guide\n    rest.md                 # REST client guide (kulala.nvim, .http files)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffloatingman-ltd%2Farcane-centaur","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffloatingman-ltd%2Farcane-centaur","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffloatingman-ltd%2Farcane-centaur/lists"}