<div align="center">
<h1>Colson Nvim (colson-nvim npm) 💎</h1>
<h2>FullStack Neovim IDE by COLSON! 🚀 </h2>
<h2>Neovim IDE for TypeScript/JavaScript Software Engineers</h2>
<h3>Supports dozen different programming languages and technologies + DevOps Workflows (Kubernetes, Docker, Terraform and more)</h3>
<h2>🎯 Blazingly Fast as compared to VSCode and WebStorm 🔥</h2>
<h2>Worldclass Neovim Experience for Engineers 💎</h2>

<!-- <img src='https://i.imgur.com/nls1N1W.png' alt='colson nvim discord presence' /> -->
<img src='https://i.imgur.com/kpAiwYn.png' alt='colson nvim discord presence' />
</div>

Step into the realm of excellence with my world-class Neovim (nvim) configuration! This comprehensive guide unveils a meticulously crafted zenful setup, meticulously designed for unparalleled efficiency, productivity, and visual splendor within Neovim.

Embark on a journey through a domain enriched with powerful features, plugins, and finely tuned key bindings, addressing a diverse range of coding/text-editing requirements. Welcome to a sublime Neovim experience tailored to elevate your coding endeavors to new heights! 🔥

![colson nvim npm](https://i.imgur.com/rAAkACt.png)

![colson nvim npm](https://i.imgur.com/RcETNS3.png)

![colson nvim npm](https://i.imgur.com/3PiJBBO.png)

![colson nvim npm](https://i.imgur.com/gLLVppX.png)

![colson nvim npm](https://i.imgur.com/L2aP14C.png)

![colson nvim npm](https://i.imgur.com/fCjMvn4.png)

![colson nvim npm](https://i.imgur.com/x08NThd.png)

![colson nvim npm](https://i.imgur.com/38UFOp7.png)

## Installation through NPM

Ensure `Neovim (v >= 0.9.x or v < 0.11.x)` and `Node` are installed on your machine!

🌎 [Neovim Packages - Arch Linux Archive](https://archive.archlinux.org/packages/n/neovim/)

```shell
// Install Neovim
$ sudo pacman -S neovim

// Install NODE (Dependency)
$ sudo pacman -S nodejs
```

<!-->

### **🚨 IMPORTANT - RED ZONE**

Neovim **`v0.11.x`** and higher intoduces breaking changes so it breaks the entire
LSP system. Therefore, its mandatory to use Neovim **`v0.9.x`** or **`v0.10.x`**
but not **`v0.11.x`**.

Check Neovim version of your machine:

```shell
nvim --version
```

If it has version, **`v0.11.x`**, then you need to downgrade to **`v0.10.x`**!

```shell
$ yay -S downgrade
$ sudo downgrade neovim
# Select v0.10.4
# Recheck neovim version:
$ nvim --version
```

Now `leader+pac` on `nvim/lua/colson/packer.lua` works so reload plugins with `leader+pac`!

`NOTE`: Leader key for Neovim -> **SPACE**

```shell
$ npx colson-nvim
$ cd ~/.config/nvim
$ nvim .
```

Navigate to `lua/colson/packer.lua`
Execute this command in normal mode!

```
:so
:PackerSync
```

-->

For the latest pull, do:

```
$ npx colson-nvim@latest
```

If its not the first time, then each time you do the latest pull, go to:

```shell
$ cd ~/.config/nvim
$ nvim .
```

Navigate to `lua/colson/packer.lua`

Then, in normal mode, do:

```
<leader>pac
```

### Important Dependency!

For this to work properly, many packages depends upon this dependency `Ultisnips`
which requires `pynvim` installed on your machine.

Here's detailed guide:

- [Ultisnips Dependency Installation](#ultisnips-dependency-installation)

Here's quick guide!!

```shell
$ sudo pacman -S base-devel cmake unzip
$ sudo pacman -S python-pynvim
```

Now, make sure you're synced with my latest configuration!

```shell
$ cd ~/.config/nvim
$ nvim .
```

Open `lua/colson/packer.lua`

```
<leader>pac
```

DONE!!
This resolves the error when opening NVIM!

COOL!

Now, Restart **Neovim** in your desired workspace!

```
nvim .
```

#### FOR the latest installation pull, do:

```
$ npx colson-nvim@latest
```

#### `NOTE`: Read the documentation below for indepth wisdom on proper installation and uses!

That's the beginning of the new world. A beginning of new experience, journey packed with challenges, integrated with tools used in daily lives, boosting productivity, enhancing engineers performance!

## [goto: TABLE OF CONTENTS 🚀 ](#table-of-contents)

**DEMO Screenshot**

## ✨ New Updated Zenful Look (COLSON NVIM)

## @ Neovim on Arch Linux

### 💎 NEW ZEN LOOK (Colson NVIM, March 19th, 2025)

![colson nvim npm](https://i.imgur.com/rAAkACt.png)

### 💎 NEW LOOK (Colson NVIM, December 5th, 2024)

![colson nvim npm](https://i.imgur.com/3PiJBBO.png)

![colson nvim npm](https://i.imgur.com/RcETNS3.png)

![colson nvim npm](https://i.imgur.com/2GtP3Cr.png)

![colson nvim npm](https://i.imgur.com/WImI5ju.png)

![colson nvim npm](https://i.imgur.com/43qgLzP.png)

![colson nvim npm](https://i.imgur.com/38UFOp7.png)

![colson nvim npm](https://i.imgur.com/8sjLsBx.png)

![colson nvim npm](https://i.imgur.com/OHRaSIu.png)

![colson nvim npm](https://i.imgur.com/5oMjIwS.png)

![colson nvim npm](https://i.imgur.com/TwjGqaZ.png)

![colson nvim npm](https://i.imgur.com/Ul5EutQ.png)

![colson nvim npm](https://i.imgur.com/gLLVppX.png)

![colson nvim npm](https://i.imgur.com/6Ypo0Vj.png)

![colson nvim npm](https://i.imgur.com/L2aP14C.png)

![colson nvim npm](https://i.imgur.com/1CrOODl.png)

![colson nvim npm](https://i.imgur.com/JIVjMiy.png)

![colson nvim npm](https://i.imgur.com/BVLn5x5.png)

![colson nvim npm](https://i.imgur.com/fCjMvn4.png)

![colson nvim npm](https://i.imgur.com/yDP4Sde.png)

![colson nvim npm](https://i.imgur.com/nUdNVTC.png)

![colson nvim npm](https://i.imgur.com/TJEVab0.png)

![colson nvim npm](https://i.imgur.com/BoLPmPl.png)

![colson nvim npm](https://i.imgur.com/NkQ6Gkg.png)

![colson nvim npm](https://i.imgur.com/x08NThd.png)

![colson nvim npm](https://i.imgur.com/nkdXMib.png)

![colson nvim npm](https://i.imgur.com/Eb0E26y.png)

![colson nvim npm](https://i.imgur.com/x4MCfKM.png)

### New Modern Look, September 2024 💎

![colsonn nvim](https://i.imgur.com/m5UvL88.png)

![colson nvim](https://i.imgur.com/NZuX2Iv.png)

![colson nvim](https://i.imgur.com/YAk1zK9.png)

![colson nvim](https://i.imgur.com/1Kvdttn.png)

![colson nvim](https://i.imgur.com/7davwV7.png)

![colson nvim](https://i.imgur.com/WP1WOzQ.png)

![colson nvim](https://i.imgur.com/7dMcAux.png)

![colson nvim](https://i.imgur.com/kHBbyOg.png)

![colson nvim](https://i.imgur.com/kp3R48u.png)

![colson nvim](https://i.imgur.com/4I0Aio9.png)

![colson nvim](https://i.imgur.com/lWLvmmD.png)

### Latest Fresh Look, July 2024 :)

![colson nvim](https://i.imgur.com/7V5XbMg.png)

![colson nvim](https://i.imgur.com/Xc3GtfT.png)

![colson nvim](https://i.imgur.com/pijyyi5.png)

![colson nvim](https://i.imgur.com/uUWfgS0.png)

![colson nvim](https://i.imgur.com/33chlUp.png)

![colson nvim](https://i.imgur.com/CzgCDIt.png)

![colson nvim](https://i.imgur.com/dFGKFhD.png)

![colson nvim](https://i.imgur.com/NfBt78o.png)

---

## @ Neovim on macOS

### 2023/Early 2024 Look

![colson nvim](https://i.imgur.com/zPUZ8lo.png)

![colson nvim](https://i.imgur.com/ZssRfKy.png)

![colson nvim](https://i.imgur.com/uCgbasi.png)

![colson nvim](https://i.imgur.com/r4kWoOM.png)

![colson nvim](https://i.imgur.com/cpzqjmT.png)

## 🔥 COOL NEW Discord Presence for Neovim (April, 2025)

![colson nvim](https://i.imgur.com/kpAiwYn.png)

![colson nvim](https://i.imgur.com/nls1N1W.png)

## ❕ Keeping Your Configuration Up-to-Date

I'm committed to consistently enhancing this Neovim setup with new features, optimizations, and additional plugins. To ensure you're making the most out of this dynamic configuration, I recommend checking for updates monthly!

As the configuration evolves, it's a good practice to sync your local repository with the latest changes. To do this, navigate to your Neovim configuration directory and run the following command:

```bash
cd ~/.config/nvim
git pull origin main
```

## **Prerequisites: Neovim 0.9.0 or Higher**

Ensure a seamless experience by confirming your Neovim version meets the requirements. Execute the following command to check your Neovim version:

```bash
nvim --version
```

Upgrade to Neovim 0.9.0 or higher if needed, and dive into an enhanced coding experience with this dynamic configuration! 🚀

## Table of Contents

- [Installation through NPM](#installation-through-npm)
  - [**🚨 RED ZONE**!](#-red-zone)
  - [Important Dependency!](#important-dependency)
    - [FOR the latest installation pull, do:](#for-the-latest-installation-pull-do)
    - [`NOTE`: Read the documentation below for indepth wisdom on proper installation and uses!](#note-read-the-documentation-below-for-indepth-wisdom-on-proper-installation-and-uses)
- [goto: TABLE OF CONTENTS 🚀 ](#goto-table-of-contents--)
- [✨ New Updated Zenful Look (COLSON NVIM)](#-new-updated-zenful-look-colson-nvim)
- [@ Neovim on Arch Linux](#-neovim-on-arch-linux)
  - [💎 NEW ZEN LOOK (Colson NVIM, March 19th, 2025)](#-new-zen-look-colson-nvim-march-19th-2025)
  - [💎 NEW LOOK (Colson NVIM, December 5th, 2024)](#-new-look-colson-nvim-december-5th-2024)
  - [New Modern Look, September 2024 💎](#new-modern-look-september-2024-)
  - [Latest Fresh Look, July 2024 :)](#latest-fresh-look-july-2024-)
- [@ Neovim on macOS](#-neovim-on-macos)
  - [2023/Early 2024 Look](#2023early-2024-look)
- [🔥 COOL NEW Discord Presence for Neovim (April, 2025)](#-cool-new-discord-presence-for-neovim-april-2025)
- [❕ Keeping Your Configuration Up-to-Date](#-keeping-your-configuration-up-to-date)
- [**Prerequisites: Neovim 0.9.0 or Higher**](#prerequisites-neovim-090-or-higher)
- [Table of Contents](#table-of-contents)
- [Introduction](#introduction)
  - [💎 Old Look (COLSON NVIM)](#-old-look-colson-nvim)
- [Installation](#installation)
- [Features](#features)
  - [Global Key Bindings](#global-key-bindings)
    - [Leader Key](#leader-key)
    - [Netrw: File Explorer](#netrw-file-explorer)
    - [NvimTree (Right window pane file explorer)](#nvimtree-right-window-pane-file-explorer)
      - [Save Files](#save-files)
      - [Save and Exit Nvim](#save-and-exit-nvim)
    - [Collaborative Editing](#collaborative-editing)
    - [Text Manipulation](#text-manipulation)
    - [Code Formatting](#code-formatting)
    - [Navigation](#navigation)
    - [Search and Replace](#search-and-replace)
  - [Normal Mode Key Bindings](#normal-mode-key-bindings)
    - [Line Manipulation](#line-manipulation)
    - [Scrolling](#scrolling)
    - [Code Navigation](#code-navigation)
    - [Ex Mode](#ex-mode)
    - [Git Integration](#git-integration)
    - [Harpoon Integration](#harpoon-integration)
    - [LSP Integration](#lsp-integration)
  - [**Telescope** Integration](#telescope-integration)
  - [TELESCOPE GREP Search](#telescope-grep-search)
- [🔥 NEW UPDATES](#-new-updates)
  - [**Bufferline**](#bufferline)
  - [**JSX/TSX \& Other Languages Commenting**](#jsxtsx--other-languages-commenting)
    - [**@ Commenting in Normal Mode**](#-commenting-in-normal-mode)
    - [**@ Commenting in Visual Mode**](#-commenting-in-visual-mode)
  - [**Discord Presence**](#discord-presence)
  - [Emmet (For HTML/JSX Autocompletion)](#emmet-for-htmljsx-autocompletion)
    - [Normal Mode Tag Manipulation: tsx/jsx/html](#normal-mode-tag-manipulation-tsxjsxhtml)
  - [Tailwind CSS IntelliSense](#tailwind-css-intellisense)
  - [Gen Lorem Ipsum](#gen-lorem-ipsum)
  - [Code Fold](#code-fold)
  - [Live Server](#live-server)
  - [System Clipboard Copy](#system-clipboard-copy)
- [🎆 React Snippets Autocompletion](#-react-snippets-autocompletion)
  - [Ultisnips Dependency Installation](#ultisnips-dependency-installation)
  - [🔥 React Snippets Guide](#-react-snippets-guide)
    - [Functional Components](#functional-components)
    - [Class Components](#class-components)
    - [General Redux + Redux Toolkit](#general-redux--redux-toolkit)
  - [🎯 TypeScript/JavaScript Engine: Cool Features](#-typescriptjavascript-engine-cool-features)
- [Git Diff View 😆](#git-diff-view-)
- [🛰️ HTTP REST Client](#️-http-rest-client)
  - [Keymaps](#keymaps)
  - [Key Mapping Explanation](#key-mapping-explanation)
- [Usage Example](#usage-example)
- [🪐 HTTP Client](#-http-client)
  - [pynvim Bindings:](#pynvim-bindings)
  - [requests Library:](#requests-library)
  - [⚡ Execute Network Request](#-execute-network-request)
- [🔄 Syncing Packer Updates](#-syncing-packer-updates)
- [✅ Git Merge Conflicts Resolver](#-git-merge-conflicts-resolver)
- [🔭 Telescope 🔥](#-telescope-)
  - [Telescope Normal Mode Commands](#telescope-normal-mode-commands)
  - [Telescope Insert Mode Commands](#telescope-insert-mode-commands)
- [🤖 Augment Code – Enterprise Grade Configuration](#-augment-code--enterprise-grade-configuration)
  - [Key Mappings](#key-mappings)
  - [User Command Aliases](#user-command-aliases)
  - [Workspace Configuration \& Auto-Update](#workspace-configuration--auto-update)
- [🤖 Github Copilot Integration](#-github-copilot-integration)
- [🚀 **HTTP REST Client for Engineers**](#-http-rest-client-for-engineers)
  - [Features](#features-1)
  - [Dependencies:](#dependencies)
  - [HTTP File Syntax Overview](#http-file-syntax-overview)
  - [**Commands \& Key Mappings Table**](#commands--key-mappings-table)
- [📘 Markdown Preview ✨](#-markdown-preview-)
  - [Commands \& Key Mappings](#commands--key-mappings)
- [Cool Pre-Configured Themes](#cool-pre-configured-themes)
  - [**@ Github Themes** - Has flavors](#-github-themes---has-flavors)
  - [**@ Catppuccin Theme** - Has flavors](#-catppuccin-theme---has-flavors)
  - [**@ Rose Pine Theme** - Has flavors](#-rose-pine-theme---has-flavors)
  - [**@ Jetbrains IDE Theme**](#-jetbrains-ide-theme)
  - [**@ MoonFly Theme**](#-moonfly-theme)
  - [**@ One Dark Theme** - Has flavors](#-one-dark-theme---has-flavors)
  - [**@ Nord Theme** - Has flavors](#-nord-theme---has-flavors)
  - [**@ Tokyo Night Theme** - Has flavors 💎](#-tokyo-night-theme---has-flavors-)

## Introduction<a name="introduction"></a>

This Neovim configuration is a powerhouse of productivity enhancements and aesthetics. I've curated a selection of plugins, key bindings, and themes to provide a versatile and delightful text-editing experience. Whether you're a developer, writer, or anyone in need of a robust text editor, this setup has got you covered.

### 💎 Old Look (COLSON NVIM)

![nvim IDE colson](https://i.imgur.com/PhNfQ2g.png)

![colson nvim](https://i.imgur.com/yphli9e.png)

![colson nvim](https://i.imgur.com/ULq4jNp.png)

![colson nvim](https://i.imgur.com/PMUhbQC.png)

![colson nvim](https://i.imgur.com/hXArysH.png)

![colson nvim](https://i.imgur.com/ulMC4IJ.png)

![colson nvim](https://i.imgur.com/UB0osd5.png)

![colson nvim](https://i.imgur.com/O9IpfyV.png)

## Installation<a name="installation"></a>

To embark on this Neovim journey, follow these steps:

1. Clone this repository to your Neovim configuration directory:

   ```shell
   git clone https://github.com/colson0x1/colson-nvim ~/.config/nvim
   ```

2. Install Packer.nvim for managing plugins:

   ```shell
   git clone https://github.com/wbthomason/packer.nvim \
     ~/.local/share/nvim/site/pack/packer/start/packer.nvim
   ```

3. Launch Neovim and run `:PackerSync` to install and update plugins.

4. Install JetBrainsMono Nerd Font:
   - Install the regular JetBrains Mono version to support Unicode and Programming Languages Icons in the Neovim IDE!
     <br />
     https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/JetBrainsMono.zip

Now, you're all set to unleash the power of this Neovim configuration!

![colson nvim](https://i.imgur.com/YffIPC6.png)

## Features<a name="features"></a>

### Global Key Bindings<a name="global-key-bindings"></a>

#### Leader Key

- **`<Space>`** serves as the leader key for most key bindings.

#### Netrw: File Explorer

![colson nvim netrw](https://i.imgur.com/cpzqjmT.png)

- **`<leader>pv`**: Open a file explorer with **Netrw**.

#### NvimTree (Right window pane file explorer)

- **`<leader>e`**: Toggle NvimTree

**NOTE: Make sure NvimTree is Opened!**

- **`<leader>+`** - Increase the NvimTree (or current window) width by 5 columns.
- **`<leader>-`** - Decrease the NvimTree (or current window) width by 5 columns.
- **`<leader>fp`** - Manually set the width of the Project Pane.

##### Save Files

**`<leader>w`** - Save all open files.

##### Save and Exit Nvim

**`<leader>q`**: - Exit Neovim

**NEW Look!**

![colson nvim nvimtree](https://i.imgur.com/SjKzoUx.png)

**Old Look**

![colson nvim nvimtree](https://i.imgur.com/zPUZ8lo.png)

#### Collaborative Editing

- **`<leader>vwm`**: Start a Vim-With-Me collaborative editing session.
- **`<leader>svwm`**: Stop a Vim-With-Me collaborative editing session.

#### Text Manipulation

- **``**: Delete selected text in visual mode.
- **``**: Yank text to the system clipboard.
- **`Ctrl+y`**: Yank the entire line to the system clipboard.
- **``**: Delete text without clobbering the register.
- **`Ctrl+c`**: Exit insert mode.

#### Code Formatting

- **`<leader>f`**: Format code using LSP (Language Server Protocol).
- Even awesome: **`:w`** triggers Prettier for code formatting!

#### Navigation

- **`<C-k>`** and **`<C-j>`**: Navigate through the quickfix list.
- **`<leader>k`** and **`<leader>j`**: Navigate through the location list.

#### Search and Replace

Search and Replace

- **`<leader>sr`**: Perform a search and replace using Telescope.

### Normal Mode Key Bindings<a name="normal-mode-key-bindings"></a>

#### Line Manipulation

- **`<leader>k`** and **`<leader>j`**: Move the current line up or down.
- **`<leader>K`** and **`<leader>J`**: Copy the current line up or down.
- **`<leader>dd`**: Delete the current line.
- **`<leader>cc`**: Duplicate the current line.

#### Scrolling

- **``** and **``**: Scroll down or up.

#### Code Navigation

- **`ds`** or **`gd`**: Go to definition (Normal Mode).
- **`gf`**: Go to file.
- **`gy`**: Go to type definition.
- **`gi`**: Go to implementation.
- **`gr`**: Show references.
- **``**: Rename symbol.

#### Ex Mode

- **`:W`**: Write the current file.
- **`:Wq`**: Write and quit.
- **`:WQ`**: Write and quit (forceful).
- **`:Wqa`**: Write all and quit.

#### Git Integration

- **`<leader>gs`**: Git status.
- **`<leader>gc`**: Git commit.
- **`<leader>gp`**: Git push.
- **`<leader>gl`**: Git log.

#### Harpoon Integration

- **`Ctrl+e`**: Harpoon open quick list.
- - **`<leader>a`**: Harpoon add buffer.
- **`Ctrl+t and Ctrl+h`**: Harpoon toggle buffer.

#### LSP Integration

- **`Shift+k`**: LSP hover.
- **`Ctrl+n`**: LSP toggle next in autocompletion.
- **`Ctrl+p`**: LSP toggle previous in autocompletion.
- **`Ctrl+k or Ctrl+y`**: LSP select in autocompletion.
- View Diagnostic Errors: **`<leader>dd` or `<leader>sd` or `<leader>vd`**

### **Telescope** Integration<a name="telescope-integration"></a>

![colson nvim telescope](https://i.imgur.com/TFnI6L3.png)

![colson nvim telescope](https://i.imgur.com/8zvfiNr.png)

![colson nvim telescope](https://i.imgur.com/uCgbasi.png)

![colson nvim telescope](https://i.imgur.com/n0fMcPh.png)

- **`<leader>pf`**: Find files in the current directory.

NOTE: **`<leader>`** is **SPACE**

### TELESCOPE GREP Search

Search by keyword in files!

![colson nvim telescope grep search](https://i.imgur.com/lzTtolO.png)

![colson nvim telescope grep search](https://i.imgur.com/LebP7Up.png)

- **`<leader>ps`**: Live grep files.

## 🔥 NEW UPDATES

### **Bufferline**

![colson nvim bufferline](https://i.imgur.com/vq02oU1.png)

To enable bufferline (Tab based file buffer like VSCode), Go to:
`$ ~/.config/nvim`
Open nvim: `$ nvim .`
Navigate to `packer.lua` and uncomment `Bufferline Plugin`
After that, write `:w` and source it: `:so` and run packer sync: `:PackerSync`
Now you're good to go!

- **`<leader>h`**: Goes to next tab.
- **`<leader>g`**: Goes to prev tab.
- **`<leader>btl`**: Move tab left.
- **`<leader>btr`**: Move tab right.
- **`<leader>bd`**: Delete current tab.
- **`<leader>bcl`**: Delete all tabs on left hand side.
- **`<leader>bcr`**: Delete all tabs on right hand side.
- **`<leader>abc`**: Close all tabs except currently opened one.

### **JSX/TSX & Other Languages Commenting**

#### **@ Commenting in Normal Mode**

- **`gcc`** - Toggles the current line using `linewise` comment.
- **`gbc`** - Toggles the current line using `blockwise` comment.
- **`[count]gcc`** - Toggles the number of line given as a prefix count
  using `linewise` comment.
- **`[count]gbc`** - Toggles the number of line given as a prefix count
  using `blockwise` comment.
- **`gc[count]{motion}`** - Toggles the region using `linewise` comment.
- **`gb[count]{motion}`** - Toggles the region using `blockwise` comment

#### **@ Commenting in Visual Mode**

- **`gc`** - Toggles the region using `linewise` comment.
- **`gb`** - toggles the region using `blockwise` comment.

### **Discord Presence**

- Open discord first and then, open your workspace from terminal: `nvim .`

### Emmet (For HTML/JSX Autocompletion)

- **`!<Ctrl+k>`** To generate HTML standard boilerplate
- **`.app-header<Ctrl+k>`**: Creates `div` with `classname` of `app-header`.
- **`#root<Ctrl+k>`**: Creates `div` with `id` of `root`.
- **`.flex.color-blue-600`**: Creates `div` with `classnames` - `flex color-blue-600`.
- **`div<Ctrl+k>`**: Creates `div` element.
- **`nav>ul>li*2<Ctrl+k>`**: Creates
  ```js
  <nav>
    <ul>
      <li></li>
      <li></li>
    </ul>
  </nav>
  ```
- **`p+span<Ctrl+k>**: Creates
  ```js
  <p></p>
  <span></span>
  ```
- **`.className<Ctrl+k>`**: Creates `div` with `prop` `className` which can be useful for styling with css modules, tailwind or mixing with style components.

#### Normal Mode Tag Manipulation: tsx/jsx/html

- `vit`: Selects everything **inside the tag**, excluding the tags themselves.
- `vat`: Selects everything **including the tag** (inner and outer).
- `cit`: Deletes everything inside the tag and starts insert mode.
- `dit`: Deletes everything inside the tag without entering insert mode.
- `dat`: Deletes the tag and its contents.

### Tailwind CSS IntelliSense

- Use **`<Ctrl+k>`** to select when you use tailwind: Ex when you type `text-` in `className='text-'`, you get autocompletion!
- Use **`<Ctrl+k`** to select in autocompletion.
- Use **`<Ctrl+n`** to go to next in the occurrence.
- Use **`<Ctrl+p`** to go to prev in occurrence.

### Gen Lorem Ipsum

- To generate lorem ipsum paragraph: In normal mode, type `:Lorem`
- To generate specified constraint of words: `:Lorem 10` which generates 10 words.

### Code Fold

- To use code folding: First go to `Visual Line Mode` using `Shift+v`.
  After that use `j` or `k` to select block of code.
  Now use: `zf` to fold code.
  To unfold the code, go to the code fold line and use: `zo` to open the code fold.

### Live Server

- First install live server globally: `sudo npm install -g live-server`
- Now inside `Neovim`: Go to `index.html` and on `Normal Mode`, type:
  `:LiveServerStart` to start the server and `:LiveServerStop` to stop the server.

### System Clipboard Copy

First install `xclip` on your machine in order for the configurations to work:

```
$ sudo pacman -S xclip
```

Then open any workspace with `nvim .` in `Tmux` environment. Now you're ready to go!

- NORMAL OR VISUAL MODE: **`<leader>y`** - Copies to system clipboard.
- NORMAL MODE: **`<leader>Y`** - Copies text from cursor to the end of the line to the system clipboard.

## 🎆 React Snippets Autocompletion

### Ultisnips Dependency Installation

For this to work, the main package depends upon this dependency `Ultisnips`
which requires `pynvim` installed on your machine.
First, let's verify if `python3` support is enabled inside your `nvim` environment.

```
cd ~/.config/nvim
```

```
nvim .
```

Open `packer.lua` and in normal mode: Type

```
:echo has('python3')
```

If it returns 1, we're good to go else we need to install the dependencies to enable the support inside the neovim environment.

Here's how to do it on **Arch Linux**:

```
$ sudo pacman -S base-devel cmake unzip
$ sudo pacman -S python-pynvim
```

`NOTE`: Make sure to use the package manager based on your distribution!!

- On **Arch-based** distros:
  ```bash
  sudo pacman -S <package-name>
  ```
- On Debian-based distros:
  ```bash
  sudo apt install <package-name>
  ```
- On Red Hat-based distros:
  ```bash
  sudo yum install <package-name>
  ```

**For macOS:**

```bash
brew install python3
brew install pynvim
```

Now, again open that `packer.lua` file and verify if we've got access to the `python3` inside `neovim` environment.
This time, it should return `1` aka OKAY!

Now, make sure you're synced with my latest configuration!

```
$ cd ~/.config/nvim
```

```
nvim .
```

Open `packer.lua`

```
:so

:PackerSync
```

Yay, finally now we should be able to use `React Snippets`!

### 🔥 React Snippets Guide

> Use **`<Ctrl+l>`** after you type the trigger code!

#### Functional Components

| Trigger Code | What it does                               |
| ------------ | ------------------------------------------ |
| `fce`        | `Function Component Export`                |
| `fcde`       | `Function Component Default Export`        |
| `sfce`       | `Simple Function Component Export`         |
| `sfcde`      | `Simple Function Component Default Export` |
| `useS`       | `useState`                                 |
| `useE`       | `useEffect`                                |
| `useEA`      | `useEffect async`                          |
| `useC`       | `useContext`                               |
| `useRed`     | `useReducer`                               |
| `useCB`      | `useCallback`                              |
| `useM`       | `useMemo`                                  |
| `useR`       | `useRef`                                   |
| `useI`       | `useImperativeHandle`                      |
| `useL`       | `useLayoutEffect`                          |
| `useDV`      | `useDebugValue`                            |
| `useT`       | `useTransition`                            |

#### Class Components

| Trigger Code | What it does                              |
| ------------ | ----------------------------------------- |
| `rce`        | `React Class Component Export`            |
| `rcep`       | `React Class Export with Prop interface`  |
| `rceps`      | `React Class Export with Props and State` |
| `rcc`        | `React Class Component`                   |
| `rcon`       | `React Class Constructor`                 |
| `spt`        | `Static PropTypes`                        |
| `sdp`        | `Static Default Props`                    |
| `sdpt`       | `Static Default Props Typed`              |
| `cdm`        | `Component Did Mount`                     |
| `cdu`        | `Component Did Update`                    |
| `cdc`        | `Component Did Catch`                     |
| `cwum`       | `Component Will Unmount`                  |

#### General Redux + Redux Toolkit

| Trigger Code | What it does             |
| ------------ | ------------------------ |
| `useDS`      | `useDispatch`            |
| `useSL`      | `useSelector`            |
| `cs`         | `createSlice`            |
| `ecs`        | `export createSlice`     |
| `cpr`        | `create prepare reducer` |
| `cat`        | `createAsyncThunk`       |

### 🎯 TypeScript/JavaScript Engine: Cool Features

- **@ sorts and removes unused imports: `<leader>oi` or `<leader>soi`**
- **@ sorts imports: `<leader>si`**
- **@ removes unused imports: `<leader>ui` or `<leader>ri`**
- **@ adds imports for all statements that lack one and can be imported: `<leader>ai`**
- **@ fixes all fixable errors: `<leader>fe`**
- **@ goes to source definition (available since TS v4.7): `<leader>d`**
- **@ allow to rename current file and apply changes to connected files: `<leader>r` or `<leader>rn` or `<leader>rf`**
- **@ find files that reference the current file (available since TS v4.2): `<leader>fr`**

---

## Git Diff View 😆

These keymaps facilitate easy navigation and management of diffs in your codebase!

| Key Mapping      | Action                   |
| ---------------- | ------------------------ |
| **`<leader>do`** | Open diff view           |
| **`<leader>dc`** | Close diff view          |
| **`<leader>df`** | Toggle file panel        |
| **`<leader>dh`** | Focus file panel         |
| **`<leader>dr`** | Refresh files            |
| **`<leader>dp`** | Previous file entry      |
| **`<leader>dn`** | Next file entry          |
| **`<leader>dt`** | Select entry             |
| **`<leader>dh`** | Open file history panel  |
| **`<leader>dl`** | Close file history panel |

---

## 🛰️ HTTP REST Client

### Keymaps

| **Action**                   | **Key Mapping**  |
| ---------------------------- | ---------------- |
| Send HTTP request            | **`<leader>rr`** |
| Preview HTTP request         | **`<leader>rp`** |
| Re-run last HTTP request     | **`<leader>rl`** |
| Toggle environment variables | **`<leader>re`** |

### Key Mapping Explanation

- **`<leader>rr`**: Sends the HTTP request located at the cursor position. Useful for quickly testing endpoints without leaving the editor.
- **`<leader>rp`**: Previews the HTTP request that will be sent. This is beneficial for verifying the request structure and headers before execution.
- **`<leader>rl`**: Re-runs the last executed HTTP request. This saves time when you need to test the same endpoint multiple times.
- **`<leader>re`**: Toggles environment variables from a `.env` file, allowing you to manage configurations effectively.

## Usage Example

Here’s an example of how to use **HTTP REST Client** in your workflow:

1. **Open a new buffer** in Neovim.
2. **Write your HTTP request** in the format supported in either one of these extension - **`.http`** or **`.rest`** . For example:

**API.http**

```http
POST http://localhost:3000/api/v1/users
Content-Type: application/json

{
 "name": "Colson",
 "currentYear": "2024",
 "age": "25"
}
```

3. **Place the cursor** anywhere within the request.
4. Press `<leader>rr` to **send the request**.
5. Check the response in a split window.

---

## 🪐 HTTP Client

This requires two dependencies: `pynvim` and `requests` library. Make sure these two dependencies are installed on your machine for it to work!

### pynvim Bindings:

- Install with `pip`:
  ```bash
  pip install pynvim
  ```
- On Arch-based distros:
  ```bash
  sudo pacman -S python-pynvim
  ```
- On Debian-based distros:
  ```bash
  sudo apt install python3-pynvim
  ```
- On Red Hat-based distros:
  ```bash
  sudo yum install python-pynvim
  ```

### requests Library:

- Install with `pip`:
  ```bash
  pip install requests
  ```
- On Arch-based distros:
  ```bash
  sudo pacman -S python-requests
  ```
- On Debian-based distros:
  ```bash
  sudo apt install python3-requests
  ```
- On Red Hat-based distros:
  ```bash
  sudo yum install python-requests
  ```

### ⚡ Execute Network Request

Use the extension **`.http`** to run HTTP API Requests!

1. Go to the `.http` file.
2. To initiate a network request, execute: **`<leader>api`**

3. To terminate the current request, execute: **`<leader>ter`**

## 🔄 Syncing Packer Updates

1. Go to: `cd ~/.config/nvim`
2. Open with nvim: `nvim .`
3. Navigate to `lua/colson/packer.lua`
4. Execute this to source + sync packer plugins: **`<leader>pac`**
5. DONE :)

## ✅ Git Merge Conflicts Resolver

| Key Mapping  | Command                   | Action                                     |
| ------------ | ------------------------- | ------------------------------------------ |
| `<leader>co` | `GitConflictChooseOurs`   | Choose your changes (`ours`).              |
| `<leader>ct` | `GitConflictChooseTheirs` | Choose incoming changes (`theirs`).        |
| `<leader>cb` | `GitConflictChooseBoth`   | Include both sides (`both`).               |
| `<leader>c0` | `GitConflictChooseNone`   | Discard both sides (`none`).               |
| `<leader>cn` | `GitConflictNextConflict` | Jump to the next conflict.                 |
| `<leader>cp` | `GitConflictPrevConflict` | Jump to the previous conflict.             |
| `<leader>cs` | `GitConflictListQf`       | List all conflicts in the quickfix window. |

---

## 🔭 Telescope 🔥

### Telescope Normal Mode Commands

| Keymap                     | Mode        | Description                          |
| -------------------------- | ----------- | ------------------------------------ |
| `<leader>pf or <leader>ff` | Normal Mode | Find files in the project            |
| `<leader>ps or <leader>fg` | Normal Mode | GREP Search: Search across all files |
| `<leader>fb`               | Normal Mode | Switch between buffers               |
| `<leader>fh`               | Normal Mode | Open help tags                       |
| `<leader>fs`               | Normal Mode | Interactive string search            |
| `<leader>fd`               | Normal Mode | View diagnostics for the workspace   |
| `<leader>fw`               | Normal Mode | Search workspace symbols             |
| `<leader>fr`               | Normal Mode | Find references to a symbol          |
| `<leader>fi`               | Normal Mode | Locate implementations               |
| `<leader>fc`               | Normal Mode | Quickly execute Neovim commands      |
| `<leader>ft`               | Normal Mode | Explore syntax tree using Treesitter |
| `<leader>gs`               | Normal Mode | View Git status                      |
| `<leader>gc`               | Normal Mode | Browse Git commits                   |
| `<leader>gb`               | Normal Mode | Switch Git branches                  |
| `<leader>gf`               | Normal Mode | Locate files tracked by Git          |

### Telescope Insert Mode Commands

| Keymap  | Mode        | Description               |
| ------- | ----------- | ------------------------- |
| `<C-n>` | Insert Mode | Move to the next item     |
| `<C-p>` | Insert Mode | Move to the previous item |
| `<C-c>` | Insert Mode | Close Telescope window    |
| `<CR>`  | Insert Mode | Select default item       |
| `<C-x>` | Insert Mode | Select horizontally       |
| `<C-v>` | Insert Mode | Select vertically         |

---

## 🤖 Augment Code – Enterprise Grade Configuration

Augment understands your codebase. I've configured and optimized for engineers working on large enterprise applications. The configuration provides:

- **Precise workspace context:** Workspace folders are explicitly set (or auto‑updated) so that Augment’s AI engine has full knowledge of your codebase.
- **Custom key mappings:** Quick keybindings for accepting AI suggestions, launching chat, and triggering enterprise workflows (e.g. code review and refactoring prompts).
- **User command aliases:** Short command aliases to quickly invoke Augment functions from the command line.

### Key Mappings

🚀 Goto command: Use **`Ctrl+j`** to accept the suggested inline code completion!

| Mode   | Key Binding   | Command Executed                                                               | Description                                                      |
| ------ | ------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------------- |
| Insert | `<C-j> `      | `call augment#Accept()`                                                        | Accept the current inline suggestion.                            |
| Insert | `<CR>`        | `call augment#Accept("\n")`                                                    | Accept suggestion; if none, insert a newline.                    |
| Normal | `<leader>as`  | `:Augment status`                                                              | Show Augment status (sign-in and workspace sync info).           |
| Normal | `<leader>asi` | `:Augment signin`                                                              | Start the sign-in flow for Augment.                              |
| Normal | `<leader>ao`  | `:Augment signout`                                                             | Sign out from Augment.                                           |
| Normal | `<leader>ae`  | `:Augment enable`                                                              | Globally enable AI suggestions.                                  |
| Normal | `<leader>ad`  | `:Augment disable`                                                             | Globally disable AI suggestions.                                 |
| Normal | `<leader>al`  | `:Augment log`                                                                 | Open the Augment log for errors and debugging.                   |
| Normal | `<leader>ac`  | `:Augment chat`                                                                | Start a chat session to ask questions about your codebase.       |
| Normal | `<leader>an`  | `:Augment chat-new`                                                            | Begin a new chat conversation (clears previous context).         |
| Normal | `<leader>at`  | `:Augment chat-toggle`                                                         | Toggle the visibility of the chat panel.                         |
| Normal | `<leader>acp` | `:Augment chat Please review the current function for potential improvements.` | Send a code review prompt for the current function.              |
| Normal | `<leader>acf` | `:Augment chat Suggest refactoring for this block of code.`                    | Request refactoring suggestions for the selected code block.     |
| Visual | `<leader>ac`  | `:Augment chat`                                                                | Send selected text to Augment chat for context‑specific queries. |
| Visual | `<leader>aq`  | `:Augment chat`                                                                | Alternative visual mapping to chat with the selected text.       |

### User Command Aliases

| Alias          | Executes Command      | Description                             |
| -------------- | --------------------- | --------------------------------------- |
| `:AStatus`     | `Augment status`      | Display Augment’s current status.       |
| `:ASignin`     | `Augment signin`      | Launch the sign‑in process.             |
| `:ASignout`    | `Augment signout`     | Sign out of Augment.                    |
| `:AEnable`     | `Augment enable`      | Enable AI suggestions globally.         |
| `:ADisable`    | `Augment disable`     | Disable AI suggestions globally.        |
| `:ALog`        | `Augment log`         | View Augment’s log output.              |
| `:AChat`       | `Augment chat`        | Open a chat session for code questions. |
| `:AChatNew`    | `Augment chat-new`    | Start a new chat conversation.          |
| `:AChatToggle` | `Augment chat-toggle` | Toggle the chat panel display.          |

### Workspace Configuration & Auto-Update

Optional since I've configured Augment to autodetect current working directory opened with **`$ nvim .`**.

| Feature                  | Behavior                                                            | Description                                                                                                                                                     |
| ------------------------ | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Workspace Folders        | `vim.g.augment_workspace_folders` set via `get_workspace_folders()` | Defines which project directories are indexed by Augment. Uses the `ENTERPRISE_WORKSPACES` env variable (colon-separated) or defaults to the current directory. |
| Auto-Update on DirChange | `DirChanged` autocmd triggers `update_workspace()`                  | Automatically adds new workspace folders when you change directories in Neovim, ensuring up-to-date context.                                                    |

---

## 🤖 Github Copilot Integration

🚀 Copilot for code completion.

| Mode   | Key Mapping   | Command/Action           | Description                        |
| ------ | ------------- | ------------------------ | ---------------------------------- |
| Normal | `<leader>csi` | `:Copilot setup`         | Authenticate and enable Copilot    |
| Normal | `<leader>cd`  | `:Copilot disable`       | Disable Copilot inline suggestions |
| Normal | `<leader>ce`  | `:Copilot enable`        | Enable Copilot inline suggestions  |
| Normal | `<leader>cso` | `:Copilot signout`       | Sign out of GitHub Copilot         |
| Normal | `<leader>cs`  | `:Copilot status`        | Check the Copilot status           |
| Insert | `<leader>j  ` | `copilot#Accept("<CR>")` | Accept the current suggestion      |
| Insert | `<leader>cn`  | `copilot#Next()`         | Cycle to the next suggestion       |
| Insert | `<leader>cp`  | `copilot#Previous()`     | Cycle to the previous suggestion   |

Note: Either enable **Augment** or **Copilot**, not both at the same time!

---

## 🚀 **HTTP REST Client for Engineers**

I've integrated a high-performance, enterprise-grade HTTP REST client plugin for Neovim written entirely in Lua. This configuration is designed for large-scale web application microservices and large code bases—ideal for software engineers at major tech companies or startups.

### Features

- **Dynamic Environment Integration:**
  Automatically retrieves dynamic variables (such as service endpoints, auth tokens, and database URLs) from environment variables, shell commands (with caching), or input prompts.

- **Inline Configuration Overrides:**
  Customize behavior on a per-request basis using inline `@cfg` directives in your HTTP files.

- **Rich Response Views:**
  Display HTTP response details (body, headers, and additional HTTP info) with dedicated result pane settings.

- **Advanced Scripting:**
  Execute inline Lua scripts as post-request hooks to process responses and set global variables.

- **Extensive Logging:**
  Enterprise-grade debugging with verbose log levels for comprehensive troubleshooting.

- **Telescope Integration:**
  Use Telescope to easily select and register dotenv files.

**Supported Neovim Versions:**

- Latest nightly
- 0.10.x

### Dependencies:

- `curl` (mandatory)
- `jq` (optional, recommended for JSON formatting)
- `nvim-telescope/telescope.nvim` (optional, for dotenv selection)
- `hrsh7th/nvim-cmp` (optional, for auto-completion)

### HTTP File Syntax Overview

When writing your HTTP request definitions (saved as `.http` or `.resty` files), you can leverage:

- **Variable Declarations:**
  - Global: `@[variable]=value`
  - Dynamic (environment, shell command, prompt):
    - `@hostname = {{$HOSTNAME}}`
    - `@hostname = {{> ./myscript.sh}}` (non-cached)
    - `@hostname = {{>> ./myscript.sh}}` (cached)
    - `@hostname = {{:prompt}}`
- **Configuration Variables:**
  Override defaults with:
  `@cfg.timeout = 2000`
  `@cfg.check_json_body = true`
- **Request Definition:**
  Specify HTTP method, URL (e.g., using dynamic `{{hostname}}`), headers, and body.
- **Inline Lua Scripting Hooks:**
  Use `# @lang=lua` above Lua script blocks to process responses.
  ```http
  # @lang=lua
  > {%
    local body = ctx.json_body()
    if body.token then
      ctx.set("login.token", body.token)
    end
  --%}
  ```
- **Favorites:**
  Mark requests with delimiters (e.g., `### #my favorite`) to easily recall them via Telescope.

### **Commands & Key Mappings Table**

| **User / Alias**            | **Command / Key Mapping**                         | **Description**                                                                                          |
| --------------------------- | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| **Run Request**             | `<leader>api` → `:Resty run`                      | Runs the HTTP request under the cursor or selected in visual mode.                                       |
| **Open Result Pane**        | `<leader>apo` → `:Resty open`                     | Opens the response/result pane in a new window.                                                          |
| **Run Last Request**        | `<leader>apl` → `:Resty last`                     | Re-runs the last successfully executed request.                                                          |
| **Show Favorites**          | `<leader>apf` → `:Resty favorite`                 | Displays a Telescope view listing all requests marked as favorites.                                      |
| **Run Specific Favorite**   | `<leader>apm` → `:Resty favorite my favorite`     | Runs the favorite request named "my favorite", regardless of cursor location.                            |
| **Edit Logs File**          | `<leader>aplgs` or `<leader>apil` → `:Resty logs` | Opens the log file to review detailed execution logs.                                                    |
| **Edit Cookies File**       | `<leader>aprc` → `:Resty cookies`                 | Opens the cookies file used for session management.                                                      |
| **Show Environment File**   | `<leader>apre` → `:Resty env show`                | Displays the dotenv file currently registered with the active HTTP file.                                 |
| **Select Environment File** | `<leader>aprs` → `:Resty env select`              | Launches a Telescope view to select and register a dotenv file.                                          |
| **Set Environment File**    | `<leader>aprt` → `:Resty env set {path}`          | Registers a specific dotenv file for the current HTTP file by appending the file path after the command. |

---

## 📘 Markdown Preview ✨

**Markdown preview** transforms your **plain markdown text** into **beautifully rendered
documents** in **real time**. It offers live updates as you type, supports syntax
highlighting for code blocks, and allows customization with themes and styles.
This feature enhances your writing **experience** by providing **immediate visual
feedback**, making it easier to create well-formatted content.

### Commands & Key Mappings

| Key Mapping  | Command                  | Command                            |
| ------------ | ------------------------ | ---------------------------------- |
| `<leader>mp` | `:MarkdownPreview`       | Start the Markdown preview         |
| `<leader>ms` | `:MarkdownPreviewStop`   | Stop the Markdown preview          |
| `<leader>mt` | `:MarkdownPreviewToggle` | Toggle the Markdown preview on/off |

---

---

## Cool Pre-Configured Themes<a name="cool-themes"></a>

The themes are configured already but I've commented out rest. Feel free to explore these themes and uncomment the one that resonates with your taste!

Preconfigured themes:

#### **@ Github Themes** - Has flavors

![colson nvim](https://i.imgur.com/b8CtR0m.png)

#### **@ Catppuccin Theme** - Has flavors

![colson nvim](https://i.imgur.com/3a7HR6X.png)

![colson nvim](https://i.imgur.com/WYT8wcG.png)

![colson nvim](https://i.imgur.com/kjXd12x.png)

#### **@ Rose Pine Theme** - Has flavors

![colson nvim](https://i.imgur.com/y0ynRkc.png)

#### **@ Jetbrains IDE Theme**

![colson nvim](https://i.imgur.com/UfAYd7w.png)

#### **@ MoonFly Theme**

![colson nvim](https://i.imgur.com/CMJSu8Z.png)

#### **@ One Dark Theme** - Has flavors

![colson nvim](https://i.imgur.com/TuYbDx0.png)

#### **@ Nord Theme** - Has flavors

![colson nvim](https://i.imgur.com/jBOksVC.png)

#### **@ Tokyo Night Theme** - Has flavors 💎

![colson nvim](https://i.imgur.com/rAAkACt.png)

![colson nvim](https://i.imgur.com/a6fYwaE.png)

![colson nvim](https://i.imgur.com/pPxAM5P.png)

END:
May your coding journey with Neovim be nothing short of stellar! 🚀

Peace! 🕊

```

```
