Skip to content

Embark on a coding odyssey with this meticulously configured Neovim setup — a fusion of precision and power, unlocking the full potential of your coding experience! 🚀

License

Notifications You must be signed in to change notification settings

colson0x1/colson-nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Colson Nvim (colson-nvim npm) 💎

FullStack Neovim IDE by COLSON! 🚀

Neovim IDE for TypeScript/JavaScript Software Engineers

Supports dozen different programming languages and technologies + DevOps Workflows (Kubernetes, Docker, Terraform and more)

🎯 Blazingly Fast as compared to VSCode and WebStorm 🔥

Worldclass Neovim Experience for Engineers 💎

colson nvim discord presence

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

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

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

// 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:

nvim --version

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

$ 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

$ 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:

$ 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:

Here's quick guide!!

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

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

$ 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!

DEMO Screenshot

✨ New Updated Zenful Look (COLSON NVIM)

@ Neovim on Arch Linux

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

colson nvim npm

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

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

colson nvim npm

New Modern Look, September 2024 💎

colsonn nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

Latest Fresh Look, July 2024 :)

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim


@ Neovim on macOS

2023/Early 2024 Look

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

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

colson nvim

colson nvim

❕ 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:

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:

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

Introduction

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

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

colson nvim

Installation

To embark on this Neovim journey, follow these steps:

  1. Clone this repository to your Neovim configuration directory:

    git clone https://github.com/colson0x1/colson-nvim ~/.config/nvim
  2. Install Packer.nvim for managing plugins:

    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:

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

colson nvim

Features

Global Key Bindings

Leader Key

  • <Space> serves as the leader key for most key bindings.

Netrw: File Explorer

colson nvim netrw

  • <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

Old Look

colson nvim nvimtree

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

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

colson nvim telescope

colson nvim telescope

colson nvim telescope

colson nvim telescope

  • <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

colson nvim telescope grep search

  • <leader>ps: Live grep files.

🔥 NEW UPDATES

Bufferline

colson nvim bufferline

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
    <nav>
      <ul>
        <li></li>
        <li></li>
      </ul>
    </nav>
  • `p+span<Ctrl+k>: Creates
    <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:
    sudo pacman -S <package-name>
  • On Debian-based distros:
    sudo apt install <package-name>
  • On Red Hat-based distros:
    sudo yum install <package-name>

For macOS:

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

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

{
 "name": "Colson",
 "currentYear": "2024",
 "age": "25"
}
  1. Place the cursor anywhere within the request.
  2. Press <leader>rr to send the request.
  3. 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:
    pip install pynvim
  • On Arch-based distros:
    sudo pacman -S python-pynvim
  • On Debian-based distros:
    sudo apt install python3-pynvim
  • On Red Hat-based distros:
    sudo yum install python-pynvim

requests Library:

  • Install with pip:
    pip install requests
  • On Arch-based distros:
    sudo pacman -S python-requests
  • On Debian-based distros:
    sudo apt install python3-requests
  • On Red Hat-based distros:
    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.
    # @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

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

@ Catppuccin Theme - Has flavors

colson nvim

colson nvim

colson nvim

@ Rose Pine Theme - Has flavors

colson nvim

@ Jetbrains IDE Theme

colson nvim

@ MoonFly Theme

colson nvim

@ One Dark Theme - Has flavors

colson nvim

@ Nord Theme - Has flavors

colson nvim

@ Tokyo Night Theme - Has flavors 💎

colson nvim

colson nvim

colson nvim

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

Peace! 🕊


About

Embark on a coding odyssey with this meticulously configured Neovim setup — a fusion of precision and power, unlocking the full potential of your coding experience! 🚀

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published