From 341499f9a7349f723ee9617f04e8fe80bfee7e06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Pankowski?= Date: Sun, 4 Aug 2024 22:45:25 +0200 Subject: [PATCH] nvim: add go tr snippet and bind key for find translation key --- nvim/.config/nvim/lua/lupan/remap.lua | 6 ++++++ nvim/.config/nvim/lua/lupan/ui.lua | 25 ++++++++++++++++++++++ nvim/.config/nvim/snippets/go/snippets.lua | 3 +++ 3 files changed, 34 insertions(+) create mode 100644 nvim/.config/nvim/snippets/go/snippets.lua diff --git a/nvim/.config/nvim/lua/lupan/remap.lua b/nvim/.config/nvim/lua/lupan/remap.lua index a828d16..9a3b72f 100644 --- a/nvim/.config/nvim/lua/lupan/remap.lua +++ b/nvim/.config/nvim/lua/lupan/remap.lua @@ -36,6 +36,12 @@ for i = 1, 9, 1 do key('n', 't' .. i, '' .. i .. 'tabnext', { desc = '[T]ab nr [' .. i .. ']' }) end +-- translations + +key('n', 'tr', function() + require('lupan.ui').find_translation_key() +end, { desc = '[T][r]anlation key find' }) + -- Diagnostic keymaps vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous [D]iagnostic message' }) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next [D]iagnostic message' }) diff --git a/nvim/.config/nvim/lua/lupan/ui.lua b/nvim/.config/nvim/lua/lupan/ui.lua index f068b5c..0b1bd74 100644 --- a/nvim/.config/nvim/lua/lupan/ui.lua +++ b/nvim/.config/nvim/lua/lupan/ui.lua @@ -41,4 +41,29 @@ function M.tab_change_dir_newtab() M.tab_change_dir({ action = tabnew_tcd, prompt_title = "Tab change directory (new tab)" }) end +local function append_text(text) + text = string.gsub(text, "^ + %w+%.([%w%p]+) +.*", "%1") + local row, col = unpack(vim.api.nvim_win_get_cursor(0)) + vim.api.nvim_buf_set_text(0, row - 1, col, row - 1, col, { text }) +end + +function M.find_translation_key(opts) + opts = opts or {} + local action = opts.action or append_text + local prompt_title = opts.prompt_title or "Get translation key" + local cmd = { 'list-translation-keys' } + local dropdown = themes.get_dropdown(); + local picker_opts = { + prompt_title = prompt_title, + finder = finders.new_oneshot_job(cmd, {}), + sorter = sorters.get_fuzzy_file({}), + attach_mappings = function(_, map) + map({ "i", "n" }, "", function(prompt_bufnr) enter(prompt_bufnr, action) end) + return true + end + } + local find_translation_key = pickers.new(dropdown, picker_opts) + find_translation_key:find() +end + return M diff --git a/nvim/.config/nvim/snippets/go/snippets.lua b/nvim/.config/nvim/snippets/go/snippets.lua new file mode 100644 index 0000000..689c82c --- /dev/null +++ b/nvim/.config/nvim/snippets/go/snippets.lua @@ -0,0 +1,3 @@ +return { + s("tr", { t "i18n.T(ctx, \"", i(1), t "\")" }) +}