{"id":27370688,"url":"https://github.com/maniebra/nvim-xdoc","last_synced_at":"2026-05-02T06:34:52.013Z","repository":{"id":285769003,"uuid":"959065083","full_name":"maniebra/nvim-xdoc","owner":"maniebra","description":"Markdown-style notes \u0026 docs embedded in your code – beautifully rendered inside Neovim.","archived":false,"fork":false,"pushed_at":"2025-04-09T20:08:22.000Z","size":14,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T09:18:57.161Z","etag":null,"topics":["docs","documentation","neovim","neovim-documentation","neovim-plugin","neovim-plugin-lua","neovim-plugins","nvim","nvim-plugin","nvim-plugins"],"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/maniebra.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}},"created_at":"2025-04-02T08:00:35.000Z","updated_at":"2025-04-09T20:16:30.000Z","dependencies_parsed_at":"2025-04-09T20:23:42.354Z","dependency_job_id":null,"html_url":"https://github.com/maniebra/nvim-xdoc","commit_stats":null,"previous_names":["maniebra/nvim-xdoc"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/maniebra/nvim-xdoc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maniebra%2Fnvim-xdoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maniebra%2Fnvim-xdoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maniebra%2Fnvim-xdoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maniebra%2Fnvim-xdoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maniebra","download_url":"https://codeload.github.com/maniebra/nvim-xdoc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maniebra%2Fnvim-xdoc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32525894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["docs","documentation","neovim","neovim-documentation","neovim-plugin","neovim-plugin-lua","neovim-plugins","nvim","nvim-plugin","nvim-plugins"],"created_at":"2025-04-13T09:18:55.350Z","updated_at":"2026-05-02T06:34:51.983Z","avatar_url":"https://github.com/maniebra.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NVIM-XDoc\n\n\u003e Markdown-style notes \u0026 docs embedded in your code – beautifully rendered inside Neovim.\n\n![nvim-xdoc](https://private-user-images.githubusercontent.com/39674854/432016344-1ff82c80-855e-4a6c-96e0-9c031969bec6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDQyMjkzMTEsIm5iZiI6MTc0NDIyOTAxMSwicGF0aCI6Ii8zOTY3NDg1NC80MzIwMTYzNDQtMWZmODJjODAtODU1ZS00YTZjLTk2ZTAtOWMwMzE5NjliZWM2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwNDA5VDIwMDMzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTViMDdkMjQ3YTY3YWZiN2JkOTIxZmQ4NjI4Yjk5MWRhYzc3OTllZGZhYzM4NjNiYmIxMjUyNzFlYjViN2Q1YmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.o6llizMTT0akcFTwrkqFDAV5RrJhx175HxvMPhRz75M)\n\n\n## ✨ What is nvim-xdoc?\n\n`nvim-xdoc` is a lightweight Neovim plugin that turns specially-formatted comments into rendered, boxed virtual text. Think of it like Markdown for your comments – but rendered right inside your code, folding the raw comments away and replacing them with stylized visual blocks.\n\nPerfect for:\n- Writing inline documentation\n- Making TODO sections pop\n- Embedding notes, instructions, or explanations right in your codebase\n\n---\n\n## 📸 Example\n\n```lua\n-- \n-- # Quick Start\n-- ## How to use xdoc\n-- - Write structured comments\n-- - They get rendered as boxes\n--\n```\n\n```c\n//\n// # Quick Start\n// ## How to use xdoc\n// - Write structured comments\n// - They get rendered as boxes\n//\n```\n\n⬇️ becomes\n\n```\n┌──────────────────────────────┐\n│ # Quick Start                │\n│ ## How to use xdoc           │\n│ - Write structured comments  │\n│ - They get rendered as boxes │\n└──────────────────────────────┘\n```\n\nThe raw comments are folded away for a clean view!\n\n---\n\n## ⚙️ Installation\n\nWith [lazy.nvim](https://github.com/folke/lazy.nvim):\n\n```lua\n{\n  \"maniebra/nvim-xdoc\",\n  config = function()\n    require(\"xdoc\").setup()\n  end,\n}\n```\n\nOr with `packer`:\n\n```lua\nuse {\n  \"maniebra/nvim-xdoc\",\n  config = function()\n    require(\"xdoc\").setup()\n  end,\n}\n```\n\n---\n\n## 🔧 Configuration\n\n```lua\nrequire(\"xdoc\").setup({\n  auto_render = true,\n  comment_syntax = {\n    lua = \"--\",\n    python = \"#\",\n    rust = \"//\",\n    -- add your filetypes\n  },\n  style = {\n    header1 = { fg = \"#FFD700\", bold = true, italic = true },\n    bullet = { fg = \"#00FFFF\" },\n  }\n})\n```\n\n---\n\n## 🧠 How It Works\n\n- Comments are parsed based on your filetype’s syntax.\n- Comments surrounded by blank comment lines are grouped and parsed.\n- If formatted with Markdown-style headings (`#`, `##`, `-`), they're highlighted accordingly.\n- The raw comment block is **folded**, and a rendered **virtual text box** is shown instead.\n\n---\n\n## 🚀 Usage\n\nOnce set up, `xdoc` just works when you enter **Normal mode** or when the **window is resized**.\n\nYou can manually toggle the preview with:\n\n```lua\nrequire(\"xdoc\").toggle_preview()\n```\n\n---\n\n## 🎨 Highlight Groups\n\nYou can customize these in your colorscheme or config:\n\n- `XDocHeader` – for `# Heading`\n- `XDocSubheader` – for `## Subheading`\n- `XDocMinor` – for `### Minor heading`\n- `XDocBullet` – for `- list items`\n- `XDocText` – fallback text style\n\n---\n\n## 🧪 Supported Languages (out of the box)\n\n- Lua\n- Python\n- JavaScript / TypeScript\n- C / C++ / Java / Kotlin / Go / Rust\n- Shell (`.sh`)\n\nFeel free to extend `comment_syntax` in your config!\n\n---\n\n## 📣 Contributing\n\nPRs, issues, and suggestions are always welcome! Let's make Neovim commenting more elegant together. 🖋️\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaniebra%2Fnvim-xdoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaniebra%2Fnvim-xdoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaniebra%2Fnvim-xdoc/lists"}