Skip to content

Releases: ivantokar/xmap.nvim

v0.8.3

Choose a tag to compare

@github-actions github-actions released this 30 Jul 17:02

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

Full Changelog: v0.7.0...v0.8.3

v0.8.2

Choose a tag to compare

@ivantokar ivantokar released this 21 Apr 08:16

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

Choose a tag to compare

@github-actions github-actions released this 21 Apr 08:03

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, and HACK.
  • Add header aliases with default provider mapping: h -> C provider, hpp -> C++ provider (plus C++ aliases cc and cxx).
  • 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, and hpp in scripts/qa_smoke_languages.lua.
  • Add manual test targets make test-c and make 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

Choose a tag to compare

@ivantokar ivantokar released this 11 Feb 19:42
4f0b0ac

🎉 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 methods
    • function setup_global() - Global functions
    • local function validate() - Local functions
    • M.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-lua command 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

Choose a tag to compare

@ivantokar ivantokar released this 27 Jan 20:57
86e3823
  • 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 optional icon on returned symbol entries.

v0.5.1

Choose a tag to compare

@ivantokar ivantokar released this 19 Dec 18:38

Full Changelog: v0.5.0...v0.5.1

v0.5.0

Choose a tag to compare

@ivantokar ivantokar released this 18 Dec 18:14
  • 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 return entries for Swift/TypeScript/TSX.
  • Fix reload.lua to not override supported filetypes during hot-reload.

v0.4.0

Choose a tag to compare

@ivantokar ivantokar released this 17 Dec 16:52

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@ivantokar ivantokar released this 16 Dec 15:17

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)

v0.2.1

Choose a tag to compare

@ivantokar ivantokar released this 15 Dec 10:45

Full Changelog: v0.2.0...v0.2.1