From b9c1cac9a5e51401b8d7740eaf95b379c90fae15 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Thu, 15 Jan 2026 15:13:20 +0300 Subject: [PATCH] specify direnv v2.33 requirement Signed-off-by: NotAShelf Change-Id: I070fd364adb5d8c64240d8681d8360916a6a6964 --- README.md | 17 ++++++++++------- lua/direnv.lua | 8 ++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 34e7c34..71ce895 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # direnv.nvim +[direnv]: https://direnv.net/ + Dead simple Neovim plugin to add automatic Direnv loading, inspired by `direnv.vim` and written in Lua for better performance and maintainability. @@ -15,13 +17,14 @@ Dead simple Neovim plugin to add automatic Direnv loading, inspired by ### 📓 TODO -There are things direnv.nvim can _not_ yet do. Mainly, we would like to -integrate Treesitter for **syntax highlighting** similar to direnv.vim. -Unfortunately there isn't a TS grammar for Direnv, but we can port syntax.vim -from direnv.vim. +`direnv.nvim` is generally feature complete. There are no major planned +features, and it should be considered stable for the most part. What +`direnv.nvim` _cannot_ do yet is **syntax highlighting** similar to `direnv.vim` +but this is planned to be remedied through either using Treesitter, or by +porting `direnv.vim`'s syntax.vim.' -Additionally, it might be worth adding an option to allow direnv on, e.g., -VimEnter if the user has configured to do so. +Feature requests are welcome. Please create an issue to describe the feature +that you would like to see. ## 📦 Installation @@ -31,7 +34,7 @@ You will need to call the setup function to load the plugin. ### Prerequisites - Neovim 0.8.0 or higher -- [direnv](https://direnv.net/) installed and available in your PATH +- [direnv] v2.33.0 or later installed and available in your PATH ### Using lazy.nvim diff --git a/lua/direnv.lua b/lua/direnv.lua index 152cdc7..ea9d26a 100644 --- a/lua/direnv.lua +++ b/lua/direnv.lua @@ -164,6 +164,14 @@ M._get_rc_status = function(callback) local ok, status = pcall(vim.json.decode, obj.stdout) if not ok or not status or not status.state then + vim.schedule(function() + notify( + "Failed to parse direnv status. Your version of direnv may not support JSON output. " + .. "Please ensure you have direnv v2.33.0 or later installed. " + .. "You can verify by running: direnv status --json", + vim.log.levels.ERROR + ) + end) for _, cb in ipairs(pending_callbacks) do cb(nil, nil) end