summary refs log tree commit diff
path: root/.vim/after/ftplugin/go.lua
diff options
context:
space:
mode:
Diffstat (limited to '.vim/after/ftplugin/go.lua')
-rw-r--r--.vim/after/ftplugin/go.lua20
1 files changed, 20 insertions, 0 deletions
diff --git a/.vim/after/ftplugin/go.lua b/.vim/after/ftplugin/go.lua
new file mode 100644
index 0000000..c881292
--- /dev/null
+++ b/.vim/after/ftplugin/go.lua
@@ -0,0 +1,20 @@
+-- vim.opt.shiftwidth = 4
+
+vim.keymap.set('n',
+  '<leader>i',
+  function()
+    local iface = vim.fn.input('Impl: ')
+    if not iface or iface == '' then return end
+    require('misc').word_under_cursor(function(word)
+      vim.cmd ('normal ][o')
+      local args = {
+        'impl',
+        '-dir',
+        vim.fn.expand('%:h:p'),
+        '"'..string.lower(word:sub(0,1))..' *'..word..'"',
+        iface,
+      }
+      vim.cmd ('r!' .. table.concat(args, ' '))
+    end)
+  end
+)