The Setup

Posts of this nature are 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 what the 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 plugins I have chosen. The funny thing is that in the time it took me to understand NVIM and Lua modules, I could have installed Lazy or Mini, which would have saved me a lot of time. Nevertheless, I decided to craft my own config by 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 hotkeys 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

It integrates with the LSP to actually provide the completion and snippets feature.

nvim-lint/conform

Two code cleanliness 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 after write. 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 uses the same 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 installation, 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

I am still exploring the vast potential of the telescope and will report back.

Using VSCode

This is the super secret section where I say that VSCode has many of these functionalities built into the app. Treesitter and LSP are simply extensions to be installed. Built-in telescopes with a hotkey and further extensions can be accessed from the sidebar. All of these can then be modified with keybinds, and I also installed Vim macros on top of them.