The Setup

Posts of this nature are essentially the computer science version of a GWRM video. Instead of the daily routine of what a person does to get ready for the day, we decided to showcase the ways in which an app we stare at for the day looks like. So, I decided to write about mine.

After a bit of spring cleaning, nuking my previous nvim, and finally reading the documentation, I am proud to write about the configs I have chosen. The funny thing was, in the time I took to understand nvim.lua modules and lazy. I could have simply installed Lazy or mini, which would have saved me a lot of time. Nevertheless, I decided to craft my own config in virtue of “using what I choose”.

Treesitter/LSP

The main part of the set-up for things that do most of the heavy work. You have the syntactical analysis with Treesitter and the semantic analysis with LSP. With Treesitter, you get useful keymaps to navigate the classes and functions inside the current buffer. With different LSPs, you get code completion, snippets, and go-to-defs. Both are immensely useful for navigating, understanding, and modifying code.

nvim.cmp

Integrates with the lsp to actually provide the said completion and snippets feature.

nvim-lint/conform

Two code cleaniness checkers. I’ve always wondered if the LSP could provide linting or not, and they can also do that, but for a linter or formatter, they usually are only run on BufReadPre. And I do think some LSP servers already send back the displayed diagnostics. The merit of these tools then is for either a custom lint/format or non-semantic stuff.

theme: catpuccin

I am a catpuccin supporter. I enjoy obsidian and the dull pastel color palette. The dark mode for this website implements the color scheme.

lualine/bufferline

Interesting story here: adding these plugins made me switch to Alacritty. Urxvt did not support emoji displays, so I had my hand forced to install a terminal that did. These plugins are just there for ui; they are visually appealing and organize useful information well.

neotree

In my original install, I never knew of the nvim plugin world, which meant that I was only working with:Explore and using other nvim commands for filesystem operations. I truly thank myself for discovering neotree. Very useful and has good functionalities.

neogit

I can do git commands in nvim!

toggleterm

I can open a terminal in nvim!

overseer

I can run tasks in nvim!

which-key

A useful plugin that reminds you of what you can do after you chord a key.

telescope

Still exploring the vast potentials of the telescope, will report back.

Using VSCode

This is the super secret section where I say that vscode has a lot of these functionalities just built-in to the app. Treesitter and LSP are simply extensions to be installed, built in telescope with a hotkey, and further extensions that can be accessed from the side-bar. All of these can then be modified with keybinds and I also installed vim macros on-top of it.