Releases: ivantokar/xmap.nvim
Release list
v0.8.3
What's Changed
- fix: correct README examples and update version by @ivantokar in #6
- Ivantokar/ci cd neovim plugin complete by @ivantokar in #7
- chore(deps): bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #8
- chore(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #9
- chore(repo): migrate protection config to ruleset-only by @ivantokar in #10
- chore: C/C++ support release and AI comment-contract migration by @ivantokar in #11
- chore: apply refined familiar comment contract across xmap by @ivantokar in #12
- docs: add xmap demo gif to README by @ivantokar in #13
New Contributors
- @dependabot[bot] made their first contribution in #8
Full Changelog: v0.7.0...v0.8.3
v0.8.2
Highlights
- Migrate comments across the repository codebase to AI-oriented contract style.
- Normalize module, function, inline, and test comments to deterministic contract/AI-hints sections.
- Keep runtime behavior unchanged (comment-only refactor in plugin logic).
Included from previous commits in this release line
- Add bundled C and C++ providers (
c,cpp) with symbol extraction for functions, types, aliases, macros, and return statements. - Add C/C++ comment support and marker rendering.
- Add header aliases and C++ aliases (
h,hpp,cc,cxx). - Extend docs, config defaults, and smoke coverage for C/C++ paths.
Validation
nvim --headless -u test_config.lua -c 'luafile scripts/qa_smoke_languages.lua' +qa
See CHANGELOG.md for full details (0.8.0, 0.8.1, 0.8.2).
v0.8.0
Highlights
- Add bundled C and C++ providers (
c,cpp) with symbol extraction for functions, types (struct/class/enum/union), aliases (typedef/using), macros (#define), and return statements. - Add C/C++ comment support for single-line and block comment entries, including marker rendering for
TODO,FIXME,NOTE,WARNING,BUG, andHACK. - Add header aliases with default provider mapping:
h-> C provider,hpp-> C++ provider (plus C++ aliasesccandcxx). - Extend default config/docs to include C-family filetypes in
filetypes,treesitter.languages, and symbol filtering examples.
Utility changelog
- Add language smoke coverage for
c,cpp,h, andhppinscripts/qa_smoke_languages.lua. - Add manual test targets
make test-candmake test-cpp. - Add C/C++ fixtures (
test.c,test.cpp) and testing/docs updates for local validation. - Add detailed maintenance comments in new C/C++ providers to document query fallbacks, parsing heuristics, and alias behavior.
See CHANGELOG.md for the full entry.
v0.7.0 - Lua Language Support
🎉 What's New in v0.7.0
🆕 Lua Language Support
xmap.nvim now supports Lua out of the box! The minimap displays:
-
Function Declarations: Global, local, and module methods
function M.setup()- Module methodsfunction setup_global()- Global functionslocal function validate()- Local functionsM.validate = function()- Arrow-style assignments
-
Variable Declarations: Local variables (
local var = ...) -
Return Statements: All return types
-
Comment Markers: TODO, FIXME, NOTE, WARNING, BUG, HACK
- Displayed with warning colors for visibility
- Comments shown without
--prefix for cleaner minimap
-
Tree-sitter Integration: Structural syntax highlighting with icons
- Function icon
- Variable icon
📚 Documentation
-
TESTING.md: Comprehensive testing guide (7700+ bytes)
- Local testing workflow
- Hot reload instructions
- Debugging commands
- Troubleshooting tips
-
README.md: Updated with Lua support in all relevant sections
-
Makefile: Added
make test-luacommand for easy testing
🧪 Quick Start
-- Add to your config
require("xmap").setup({
filetypes = { "swift", "typescript", "typescriptreact", "lua", "markdown" },
})# Test locally
make test-lua📦 Installation
-- lazy.nvim
{
"ivantokar/xmap.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter" },
config = function()
require("xmap").setup()
end,
}Don't forget to install the Lua Tree-sitter parser:
:TSInstall lua🔧 Full Changelog
- Add bundled Lua provider (
lua) with minimap entries for function declarations (global, local, module methods), variable declarations, and return statements. - Support Lua comment detection and rendering (including TODO/FIXME/NOTE/WARNING/BUG/HACK markers).
- Update CHANGELOG.md with v0.7.0 release notes
- Add comprehensive testing guide (TESTING.md)
- Update documentation with Lua support
🙏 Thanks
Thanks for using xmap.nvim! If you find this useful, consider giving it a ⭐ on GitHub.
Supported Languages: Swift, TypeScript, TSX, Lua, Markdown
v0.6.0
- Add bundled Markdown provider (
markdown) with minimap entries for headings (ATX + Setext), fenced code blocks, images, links, and HTML tags. - Add Markdown heading highlight groups (
XmapMarkdownH1-XmapMarkdownH6,XmapMarkdownHeadingText) and apply heading highlighting in the minimap. - Extend language providers:
parse_symbol(line_text, line_nr?, all_lines?)and optionaliconon returned symbol entries.
v0.5.1
v0.5.0
- Add TSX (typescriptreact) React hook entries (
hook useX) to the minimap (incl. destructuring/assignments). - Improve TSX Tree-sitter structural highlighting (captures const arrow-function declarations).
- Pin minimap split to the tabpage edge for
side="left"/side="right". - Make focus keymap (
<leader>mf) open the minimap if needed. - Add
returnentries for Swift/TypeScript/TSX. - Fix
reload.luato not override supportedfiletypesduring hot-reload.
v0.4.0
v0.3.0
Swift-only bundled support with provider-based language architecture (easy to add new languages via lua/xmap/lang/.lua).
- Per-language keyword filtering for the minimap list (symbols..keywords/exclude/highlight_keywords)
- Relative prefix improvements: number-first format, configurable direction indicators, configurable spacing (number_separator, separator)
- Comment entries render without // / /// prefixes
- Brighter relative distance numbers by default (XmapRelativeNumber -> CursorLineNr) + highlight overrides that persist across :colorscheme
- More robust Swift Tree-sitter query fallbacks + caching
- Fix prefix padding for multi-byte direction icons (no extra space for the current-line dot)