mirror of
https://github.com/NotAShelf/direnv.nvim.git
synced 2025-10-24 08:52:50 +00:00
Lua implementation of direnv.vim for automatic .envrc handling & syntax.
I should have worked more with atomic commits and less with whatever the hell this is supposed to be, but hindsight is 20/20. tl;dr is that this refactor improves the plugin with better UX, slightly better performance, and better compatibility with Neovim 0.10, which I have overlooked last time. Changes are, from memory, as follows: - Caching system to prevent excessive direnv status checks - Statusline integration to show direnv status in real-time - Proper async handling for all operations - Added (subpar) .envrc file editor with creation prompt - Added autocmd hooks for other plugins (User `DirenvLoaded`, fixes #5) - Better, comprehensive notification system with proper scheduling - Intuitive handling of allowed/pending/blocked states - Added command to check direnv status - Improved contextual commands and keyboard mappings (despite "best" practices) For those who have direnv.nvim already set up (despite the repo being archived for months), I tried to retain full backwards compat. New functionality and error fixes were built on top. |
||
|---|---|---|
| .github/workflows | ||
| lua | ||
| .gitignore | ||
| .luacheckrc | ||
| LICENSE | ||
| README.md | ||
| stylua.toml | ||
direnv.nvim
Dead simple Neovim plugin to add automatic Direnv loading, inspired by
direnv.vim and written in Lua.
📦 Installation
Install direnv.nvim with your favorite plugin manager, or clone it manually.
You will need to call the setup function to load the plugin.
🚀 Usage
direnv.nvim will automatically call direnv allow in your current directory if
direnv is available in your PATH, and you have auto-loading enabled.
🔧 Configuration
You can pass your config table into the setup() function or opts if you use
lazy.nvim.
Options
bin(optional, type: string): the path to the Direnv binary. May be an absolute path, or justdirenvif it's available in your PATH. - Default:direnvautoload_direnv(optional, type: boolean): whether to calldirenv allowwhen you enter a directory that contains an.envrc. - Default:falsekeybindings(optional, type: table of strings): the table of keybindings to use.- Default:
{allow = "<Leader>da", deny = "<Leader>dd", reload = "<Leader>dr"}
- Default:
Example:
require("direnv").setup({
autoload_direnv = true,
})