I thought of trying a little series and showing off some neovim plugins I use on a daily basis.
To start somewhere, I'll go alphabetically with autopairs.lua.
Config
return {
"windwp/nvim-autopairs",
opts = {
fast_wrap = {
highlight = "IncSearch",
}, -- setup function and press <M-e> to use fast_wrap
check_ts = true,
map_c_h = true,
},
}
For autopairs, I like it if it doesn't get in my way, and autopairs.lua does a good job here. The feature I love the most is fast_wrap. You simply hit <M-e and it will ask you where you want to wrap it. Simple and clean. :)
That's it. A plugin I wish would be shipped with Neovim already.
I’ve bought me a Christmas present, a refurbished steamdeck and it arrived today. After unpacking and putting in the charging cable, I’ve started the deck. Sadly, I’m stuck in an installation problem, and I’m unable to complete the setup. 😢
Some days ago, my GitHub Copilot subscription ended, and I decided to switch to another paid auto-completion service.
Overall, I was ok with what GH Copilot delivered. But I heard a lot about the new kids in town and wanted to explore them. I was split between Codium and Supermaven and decided for Supermaven after their announcement that they will join Cursor.
tldr: Season 1 was a masterpiece and hard to beat. Season 2 was good in its own way and I had a good time with it. The difference is that S2 didn't catch me as emotionally as S1.
Today is a typical Friday. Instead of slowing down and preparing for the weekend, my Fridays tend to be extra stressful. Everything collides with everything. Normally, on a Friday. I would say that Thursdays are the calmest here.
I had countless meetings today. So besides of working out and preparing a new feature for a client, I was unable to get done more. I've looked into #AdventOfTypescript, googled some things but then, I was out. Today's topic was good, and I wanted to know more about it and how it is solved, but I had no energy for it.
Apart from work on my notebook and clients, I've ordered some wood for our cellar to make some boxes to hide cables and heating pipes. It will arrive next Tuesday. I'm a bit excited. Later, a friend came by and inspected our stairs. They are +30 years old and in some places rotten. I feared that I have to replace one whole stair stringer. But I'm lucky. I need to replace only around 10-15 cm. 🥳
On Monday, our floor impact protection will arrive. Made of rubber cork, a beautiful material. So, my holidays look like I will be putting the pieces of the puzzle together.
Let's see if I will find time for the #AdventOfCode puzzles or my side projects. And I'm officially done with #AdventOfTypescript for 2024. Ah, also I've ordered a refurbished steamdeck, to add more on my plate for stuff I have no time for. 😅
I think, I've reached quite fast a point where I have absolutely no Idea, what I should do to complete this day.
Here is my current state, which is not a working solution.
type StringToNumber<T extends string> = T extends `${infer N extends number}` ? N : never;
type NaughtyOrNice<Name extends string> = Name["length"] extends 0 ? "nice" : "naugthy";
type FormatNames<Name extends string[][]> = Array<{
[K in keyof Name]: {
name: Name[K]["0"];
count: StringToNumber<Name[K]["2"]>;
rating: NaughtyOrNice<Name[K]["0"]>;
};
}>;
Code
Nothing new here. Yesterday, I've completed Day 6 and wrote some code for Part 6. But know that AdventOfTypescript is also taking some time to finish, it feels like work. 😩
Conclusion
For Day 13, I will check out AdventOfTypescript and if the solution is not clear to me on first sight, I will discontinue it. I will then try to focus more on AdventOfCode. Because I don't see the benefit of the types they expect me to write. Yes, there is something to learn, but too far away from an area where I will benefit from. If AdventOfCode gets too heavy for me, I will focus on my side projects and try to gain some progress there. For January, I have something planned. 😎
Bit manipulation. I like this topic. It hit the right spot, not too hard, not too easy. 👌
Day 11
Day 11 forced me to do some research. First, I didn't know what I should do. Then, I got it but didn't know, how to write the types. It is this kind of solution, I'm not doing really often. In the end, this is why I'm doing it. To get a refresher and/or learn something new. 😎
Finally, my first ⭐ for Day 6. It took me so long because I was out of time and also introduced a bug, while coding everything without running it step by step. This took a lot of time, and starting over was the best Idea.
Currently, I'm looking at Part 2 and have some Ideas, how this could be solved. Such an exciting topic and I need more time. 😅
Day 7 gave me a bit of a struggle and I went with the easy solution by creating a union and hard-coded the expected array into the type. I'm sure there is a better solution, but I didn't find anything.
Here is my solution. So it is not wrong because it takes the test green. But we know that this will not mean that the solution is correct. :D
Like the days 1-6, they were effortless. I expect that the next days will be harder.
Code
No real progress since Friday. I've looked into Day 5 and skipped it for now. I've started to write code for Day 6, which makes a lot of fun I'm not at the end. The last time I've looked into 2D Tile maps, was +10 years ago.
I think this is the first time, the YouTube algorithm hits a nerve.
The Wolston Butchers channeling everything I love about Skatepunk or Melodicpunk. It's like all the great bands in this scene had a baby which grew up in perfect conditions.
Sadly, they are quite young and don't have enough output to fulfill my needs. 😅 But I'm all-in for every new release from them.