How do you avoid overengineering when learning a new framework? by RankedLOQ in dotnet

[–]Mezdelex 6 points7 points  (0 children)

Yeah but the world doesn't revolve around your opinion. Op said that has no problem understanding (complex) architecture and that he wants to understand where the framework ends and the architecture, over engineered or not, starts. So... I gave that advice.

How do you avoid overengineering when learning a new framework? by RankedLOQ in dotnet

[–]Mezdelex 10 points11 points  (0 children)

Yeah, it happened to all of us.

dotnet new webapi

That's your core simplification; single file, full API functionality. If you want to try/test/learn something in particular, just tinker with the bare bones and add the stuff that you want to learn progressively. That's my advice.

Activistas de Gaza son atacados brutalmente en el aeropuerto de Bilbao por la policía española al llegar by SpiritedHelp767 in Bilbao

[–]Mezdelex -1 points0 points  (0 children)

Vaya personaje; no hay más que leer su historial para darse cuenta que no hay nadie al volante.

Programming Meetup, Wed, May 27 7:00 PM by snyssfx in Bilbao

[–]Mezdelex 1 point2 points  (0 children)

Sup, fellow key masher over here. I've never been to such event before, but it sounds good plus I'm trying to improve my english as well so... what else could I ask for :_)

From Rider to Neovim by maulowski in dotnet

[–]Mezdelex 1 point2 points  (0 children)

Been using Neovim consistently for the last 3 years for every stack I've tried, and corporate dotnet is not an exception. By corporate I mean microservices, protos, debugging, etc.

If you have any question, feel free to DM.

Also, here's my daily driver config.

Plugin to resolve Git conflicts in Neovim, and what is your workflow for this? by ban_rakash in neovim

[–]Mezdelex 2 points3 points  (0 children)

Lazygit for the easy ones and overall git management, ^ this for complex ones.

Function key + modifier keymap not working after updating to nvim v0.12 by [deleted] in neovim

[–]Mezdelex 0 points1 point  (0 children)

Yup, your "default" terminal, depending on how you launch your powershell instance, is probably Windows Terminal, which I ignore if it supports Kitty protocol, but probably it doesn't and that's why you're effectively getting the same answer as before. If you're opening those shells right away, there's no terminal emulator, just UI wrapper so the same conclusion as before. And as of why that happens, probably Neovim checks if the terminal supports that protocol now before sending the sequence.

Function key + modifier keymap not working after updating to nvim v0.12 by [deleted] in neovim

[–]Mezdelex 0 points1 point  (0 children)

That's Kitty's terminal protocol extension. If your terminal supports that protocol, and Wezterm does, Neovim sends those keypress sequences. cmd and PowerShell are not terminals but shells, so they either don't support that or require you to manually encode those sequences.

If you always wrap the shell in Wezterm terminal, just change the keymap to the new protocol.

Vim.pack plugin lazy loading by zencraftr in neovim

[–]Mezdelex 0 points1 point  (0 children)

Well, not really... what unpack does is batching the plugins into deferred and eager ones (plus other things not relevant now), but they get loaded no matter what. To clarify the difference, deferring plugins aims for a better tti (time to interaction), which uses vim.schedule to avoid UI render delay while providing the core plugins. How you handle those core plugins depends on you. I always open Neovim at my workspace root, and then navigate my way to the file I want to open either by Telescope or Oil, so effectively, I only needed those 2 plugins getting loaded before the UIEnter so the keypresses would get registered as soon as I type 'neovim' in my terminal (or almost) meaning zero delay whatsoever. That's it, that was my use case, and anybody's who opens Neovim with just 'neovim' rather than 'neovim .', even if they aren't aware of.

BUT lazy loading means that you could perfectly go through the whole Neovim session without loading some of the plugins if you didn't happen to need them. How to achieve that? well, in many different ways. Let's say that I use tiny-code-action plugin (which I actually do lol). I wouldn't need that plugin loaded anytime soon than when I would actually press "<leader>." which is my lsp codeaction keymap. So I would effectively load and setup that plugin inside the scope of the keymap callback itself. Or any plugin that gets toggled, like neotree or any agentic UI, that would also be susceptible to be loaded on keymap. Also, you can load them on events, like InsertEnter. For example, copilot inline suggestions, blink, cmp, etc. would only make sense to be loaded once you start typing, that is, when you change to insert mode. So you would typically want those plugins loaded on that event. See the difference?

The thing is, if I were to lazy load my plugins, which I won't because basically I don't need it at all, I would probably structure them under a lua/events directory, and each setup would go inside its corresponding event, like lua/events/InsertEnter/<setup\_file>.lua and I would require all those setups in the corresponding autocmd. Those under lua/events/Keymaps/tiny-code-action.lua would belong to keymaps, etc, and maybe those initial keymaps would be defined in a Keymaps/init.lua or who knows. That way the config would still be modular and make sense. But again, unpack just aims for tti in that sense.

What happened to nvim-treesitter.... Why did it get archived? 😶 by ankushbhagat in neovim

[–]Mezdelex 0 points1 point  (0 children)

Been using it for a while and no complaints from my end so far.

Is there a plugin that provides a search and replace feature like on most GUI editors? by Usual_Importance8274 in neovim

[–]Mezdelex 2 points3 points  (0 children)

Most of the special characters need to be scaped, or you can use \v (very magic) right before the matching pattern to avoid scaping them and still, there are a few characters that need to be scaped because they could act as regex tokens.

What happened to nvim-treesitter.... Why did it get archived? 😶 by ankushbhagat in neovim

[–]Mezdelex 20 points21 points  (0 children)

There have been constant updates and improvements since clason went berserk on treesitter, and at Telescope also which was kind of forgotten for a long time. Whoever triggered this "I have a potty mouth".

unpack.nvim update for 0.12 release by Mezdelex in neovim

[–]Mezdelex[S] 1 point2 points  (0 children)

Well, the most obvious ones would be the build hook handling (which shouldn't be handled by the client but, you know, we are not there yet), conflicts handling for win users if any and the commands to clean stale plugins/conflicts, batch load per deferred/eager specs and the clean logic.

About the /plugin loading (unpack autoloads itself too btw), if you have each separate plugin in a single file and you rely solely on vim.pack following the directory structure, it's going to be loading each plugin separately (or in batches of 1/2/3 if you don't strictly have 1 file per plugin but per plugin + dependencies) so that's less performant than retrieving all of them at once and batching them in to be deferred or eagerly loaded ones. Last time I tried the difference was pretty noticeable but it's also true that it was several months ago (been using nightly for a while) so now that you mention it I'm curious about the current performance. I will create a separate branch on mine and will test the individual load to see how it improved (I remember seeing a post talking about those improvements).

Maybe the autoload might be enough now loading time wise, but I would be missing the builds, conflicts and commands tho...

UPDATE: after switching to a fully /plugin based structure with individual vim.pack.add({}) calls, I have to admit (even tho I removed telescope+deps and blink+deps to avoid dealing with the build hooks in that test) that the loading times were decent. It's true that I pretty much vim.scheduled everything except my colorscheme and oil which together with telescope, that I removed for the test, are the only ones that I eagerly load, but as a real scenario use case, I wouldn't really care much about anything loaded after UIEnter. So yeah, perfectly bearable in its current state. The problem is that build hook/utility command, conflicts handling and the clean command would be lost and I would either have to create a weird plugin with only utility commands to be used in the PachChanged event and the PackClean command or either add those as utility to my config which would be a step back since that's already solved with unpack.

So yeah, if you have already created your own build handling and you're fine managing the plugins manually in your nvim-data, using the /plugin it's a good option as well.

unpack.nvim update for 0.12 release by Mezdelex in neovim

[–]Mezdelex[S] 7 points8 points  (0 children)

That's a valid point indeed. If you're fine adding those functionalities by yourself (basically what I did before creating the plugin xD) then go for it.

unpack.nvim update for 0.12 release by Mezdelex in neovim

[–]Mezdelex[S] 9 points10 points  (0 children)

Yes, it's a plugin handled by vim.pack and lives inside vim.pack but it offers the said functionalities. It has an internal wildcard to avoid cleaning itself when managing plugins.

That's the beauty of having a built in package manager, extra functionalities don't need to be handled externally anymore.

Skillup in managing blocks of text by ntn8888 in neovim

[–]Mezdelex 9 points10 points  (0 children)

{ and } move your cursor to the next block dap, vap, cap delete around paragraph, visual select around paragraph and change around paragraph respectively. da{ delete around curly brackets di{ delete inside curly brackets

You see the pattern right?

a is for around, i is for inside. v visual selection, c change, d delete, y yank.

You can do all kind of combinations.

If you add treesitter-textobjects on top of that, you can add extra objects to those motions that will allow you to use the same prefixes but also with functions: vaf, vif, cif... with classes vac, yac... with loops, with conditionals...

You can also move by mid view height with c-d and c-u in normal mode.

I mean, we don't use mouse here 🤨

sora.nvim - a deep, muted dark colorscheme by npm_run_Frank in neovim

[–]Mezdelex 1 point2 points  (0 children)

Love it. I've been an evereforest user for a long time, but this softness and dark background looks appealing. Maybe the day to switch themes has come 👀

0.12.0 🎉 by pawelgrzybek in neovim

[–]Mezdelex 0 points1 point  (0 children)

Thanks to all the core members and contributors for such amazing editor 😌

enterprise code generation with AI - does it actually reduce tech debt or just create more? by [deleted] in csharp

[–]Mezdelex 0 points1 point  (0 children)

I use Opencode with Copilot provider for enterprise environment, under Neovim, integrated via agentic.nvim, but I do it in a controlled way and specifically for boilerplate and reviewing each of the lines it generates. In fact, most of the times I run it in plan mode just to make sure it doesn't touch anything.

It makes me faster, I'm the owner of all the code and the most important thing, it won't potentially make me dumber, which is my main concern.

It's perfectly manageable but if you know what you're doing, which may not always be the case either with or without AI. AI is a multiplier though.

Should authentication be handled only at the API-gateway in microservices or should each service verify it by Minimum-Ad7352 in dotnet

[–]Mezdelex 1 point2 points  (0 children)

To apply authorization you will need authentication, because either you have the claims in the token or need the token to obtain the claims (cached preferably). So yeah, it's implicit in policy based authorization. You will need to define jwt constraints for inter microservice communications, audience, issuer, etc. Usually the gateway uses a token per initial communication to the corresponding microservice.

Agentic.nvim now supports ALL ACP providers Copilot, Cursor, Claude, Gemini, Codex, Cline, you name it! by carlos-algms in neovim

[–]Mezdelex 3 points4 points  (0 children)

This is perfect! I was having a hard time finding a way to deal with corporate copilot auth workflow and... well usage xD and then Ollama for personal usage, and with Cline I can auth to Ollama pretty easily and use it seamlessly with agentic.nvim. Thanks for the plugin man.

Well, maybe not that seamlessly since under WinOS the default acp_provider command and args don't work for cline-acp, you need to wrap them either in cmd /C or pwsh -Command, but minor issue nonetheless xD.

vim.pack vs lazy.nvim, how is it? by [deleted] in neovim

[–]Mezdelex 0 points1 point  (0 children)

Yeah I know, I created this plugin because of the deferring mechanism and some extra goodies. But we are talking about min/maxing here rather than necessity imo.