diff --git a/flake.lock b/flake.lock index cd9288c..bea1055 100644 --- a/flake.lock +++ b/flake.lock @@ -2543,6 +2543,22 @@ "type": "github" } }, + "goimpl-nvim": { + "flake": false, + "locked": { + "lastModified": 1730183651, + "narHash": "sha256-4kmvNdyA+by/jgo9CGNljND3AcLYgw0byfIQsSz8M2Y=", + "owner": "edolphin-ydf", + "repo": "goimpl.nvim", + "rev": "61257826f31a79870bb13d56c4edd09b1291c0b8", + "type": "github" + }, + "original": { + "owner": "edolphin-ydf", + "repo": "goimpl.nvim", + "type": "github" + } + }, "gopher-nvim": { "flake": false, "locked": { @@ -4633,6 +4649,22 @@ "type": "github" } }, + "popup-nvim": { + "flake": false, + "locked": { + "lastModified": 1637254091, + "narHash": "sha256-dNWz/xovUg55fDZUpVs/2kLphk3lqQyvPtc9ATwbeSQ=", + "owner": "nvim-lua", + "repo": "popup.nvim", + "rev": "b7404d35d5d3548a82149238289fa71f7f6de4ac", + "type": "github" + }, + "original": { + "owner": "nvim-lua", + "repo": "popup.nvim", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": [ @@ -4903,6 +4935,7 @@ "git-conflict-nvim": "git-conflict-nvim", "gitsigns-nvim": "gitsigns-nvim", "glance-nvim": "glance-nvim", + "goimpl-nvim": "goimpl-nvim", "gopher-nvim": "gopher-nvim", "goplements-nvim": "goplements-nvim", "goto-preview": "goto-preview", @@ -5026,6 +5059,7 @@ "pathlib-nvim": "pathlib-nvim", "pgmnt-vim": "pgmnt-vim", "plenary-nvim": "plenary-nvim", + "popup-nvim": "popup-nvim", "project-nvim": "project-nvim", "promise-async": "promise-async", "pum-vim": "pum-vim", diff --git a/flake.nix b/flake.nix index bc47acf..db363d0 100644 --- a/flake.nix +++ b/flake.nix @@ -1356,6 +1356,14 @@ url = "github:maxandron/goplements.nvim"; flake = false; }; + goimpl-nvim = { + url = "github:edolphin-ydf/goimpl.nvim"; + flake = false; + }; + popup-nvim = { + url = "github:nvim-lua/popup.nvim"; + flake = false; + }; }; outputs = diff --git a/fnl/after/go.fnl b/fnl/after/go.fnl index d0d9c0c..5e65105 100644 --- a/fnl/after/go.fnl +++ b/fnl/after/go.fnl @@ -1 +1,13 @@ (set vim.opt_local.expandtab false) + +;; depends goimpl +(let [opts (fn [d] {:noremap false :silent true :buffer true :desc d})] + (each [mode ks (pairs {:n [[:fi + (fn [] + ((-> (require :telescope) + (. :extensions) + (. :goimpl) + (. :goimpl)))) + (opts " generate stub for I/F")]]})] + (each [_ k (ipairs ks)] + (vim.keymap.set mode (. k 1) (. k 2) (. k 3))))) diff --git a/fnl/goimpl.fnl b/fnl/goimpl.fnl new file mode 100644 index 0000000..62fc7fc --- /dev/null +++ b/fnl/goimpl.fnl @@ -0,0 +1,2 @@ +;; depends telescope +((. (require :telescope) :load_extension) :goimpl) diff --git a/lua/autogen/after/go.lua b/lua/autogen/after/go.lua index efa080b..3417f50 100644 --- a/lua/autogen/after/go.lua +++ b/lua/autogen/after/go.lua @@ -1,3 +1,16 @@ -- [nfnl] Compiled from fnl/after/go.fnl by https://github.com/Olical/nfnl, do not edit. vim.opt_local.expandtab = false +local opts +local function _1_(d) + return {silent = true, buffer = true, desc = d, noremap = false} +end +opts = _1_ +local function _2_() + return require("telescope").extensions.goimpl.goimpl() +end +for mode, ks in pairs({n = {{"fi", _2_, opts("\238\152\167 generate stub for I/F")}}}) do + for _, k in ipairs(ks) do + vim.keymap.set(mode, k[1], k[2], k[3]) + end +end return nil diff --git a/lua/autogen/goimpl.lua b/lua/autogen/goimpl.lua new file mode 100644 index 0000000..dfba4a3 --- /dev/null +++ b/lua/autogen/goimpl.lua @@ -0,0 +1,2 @@ +-- [nfnl] Compiled from fnl/goimpl.fnl by https://github.com/Olical/nfnl, do not edit. +return require("telescope").load_extension("goimpl") diff --git a/main/language.nix b/main/language.nix index 33288d1..452a7d3 100644 --- a/main/language.nix +++ b/main/language.nix @@ -123,6 +123,14 @@ rec { package = goplements-nvim; postConfig = read ../lua/autogen/goplements.lua; } + { + package = goimpl-nvim; + postConfig = read ../lua/autogen/goimpl.lua; + depends = [ + search.telescope + popup-nvim + ]; + } ]; postConfig = read ../lua/autogen/gopher.lua; extraPackages = with pkgs; [