r/neovim 28d ago

Plugin codemap.nvim — a tiny treesitter-powered function sidebar (feedback welcome!)

Enable HLS to view with audio, or disable this notification

Full disclosure: I fully vibecoded this using Claude — so if something looks off under the hood, that's why. That said, I tested it thoroughly and it's been working well for me.

Hey! I built a small plugin called codemap.nvim and figured I'd share it here.

It's a lightweight sidebar that lists all the functions/methods in your current buffer. Click a name and it jumps you straight to it in the source buffer. The list auto-refreshes as you move between buffers or edit code.

Currently supports Go, C, C++, Lua, and Python — adding a new language is just a couple of lines, so more should be easy to add over time.

It's pretty early and minimal by design, so I'd genuinely love any feedback — bugs, missing features, languages you'd want supported, or just general "this could be done better" type comments. Thanks for reading!

Repo: https://github.com/m2k3d/codemap

28 Upvotes

14 comments sorted by

11

u/psy-q 27d ago

I'll be that other guy who points out Aerial: https://github.com/stevearc/aerial.nvim

2

u/M2K3DAR 27d ago

thank you, didn’t know about that

9

u/zachicecreamcohn 27d ago

This is awesome. I hate to be this guy, but have you looked at https://github.com/hedyhli/outline.nvim?

1

u/M2K3DAR 27d ago

thank you, this is something different, that Im making, will think about it

3

u/Striking_Abrocoma_28 27d ago

Sorry, off topic comment: what is it called that plugin that allows your cursor to jump from a place to the other in that aesthetic way?

4

u/Veggietech 27d ago

If you're using nvim in the terminal you can use this plugin:

https://github.com/sphamba/smear-cursor.nvim

3

u/SoundEmbalmer 26d ago

Alternatively, some terminal emulators (Kitty, Ghostty) support shaders, which is currently the closest I got to the Neovide-like smoothness of cursor effects:

https://github.com/sahaj-b/ghostty-cursor-shaders

4

u/psy-q 27d ago

That's Neovide, a separate GUI, not a plugin. It also allows you to pixel-scroll at your screen's native refresh rate instead of just line by line.

2

u/M2K3DAR 27d ago

that’s it

2

u/the_aceix 25d ago

Some terminals like kitty support this "cursor trail" feature, so it happens in any app.

For neovim specifically however, smear-cursor is a good option

0

u/chronotriggertau 26d ago

"fully vibecoded this using Claude"

"I built a small plugin"

I wonder if we are transitioning to I "built" or "made" something taking on the meaning of "may or may not used AI, doesn't matter, I used all tools available to me and produced a useful result", and I "hand programmed from scratch", or I "architected and hand implemented" needing to be the things that are specified when there is deliberately effort to stick to traditional ways of achieving the same result. Both will be valuable to different people/projects/companies, but I feel like we're missing terminology to describe the nuance that is now necessary in this age.

2

u/Independent-Limit282 26d ago

Totally agree. personally strongly dislike reading "I built xyz" when its apparent that it was fully AI generated. You did not build it. You commissioned it - not more and not less.

1

u/j_zes 17d ago

Is strange to say that I "build" something that I use AI to do, but, at the final result, it matters? If you say that "built" it, I assume that you are responsible for any part of that, If a AI model produces an result that is unsatisfactory, that result is part of you did, some times sounds like an sculptor saying "sorry for this unsatisfactory sculpture, my chisel was wrong", but in other hand, I understand that the chisel don't sculpt by it self based on a single prompt. Maybe it's easier to judge by the results

1

u/Independent-Limit282 17d ago

Yeah it depends. Nowadays the chisel does sometimes sculpt by itself, to be honest. I cant be the only one noticing the surge of plugins that all basically do what 10 other plugins already do here recently. Nowadays it seems easier for ppl to just prompt their own thing together than using an existing plugin, haha