From e859bfc65d3807ade509f9f230ffac7166eb409b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Mon, 4 Oct 2021 14:50:45 +0200 Subject: [PATCH] Extend vim_rest_console_extensions with auto filename generation --- symlinks/config/nvim/lua/common/projects.lua | 19 +++++++++++++++++++ .../nvim/lua/vim_rest_console_extensions.lua | 18 ++++++++++++++++-- symlinks/config/nvim/plugin/rest.lua | 6 +++--- 3 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 symlinks/config/nvim/lua/common/projects.lua diff --git a/symlinks/config/nvim/lua/common/projects.lua b/symlinks/config/nvim/lua/common/projects.lua new file mode 100644 index 0000000..9bfca44 --- /dev/null +++ b/symlinks/config/nvim/lua/common/projects.lua @@ -0,0 +1,19 @@ +------------------------------------------------------------------------------- +-- - Common projects library - +------------------------------------------------------------------------------- + +local M = {} + +-- Gets project root directory based on projectionist +function M.get_project_root() + return vim.fn['projectionist#path']() +end + +-- Get unique project ID based on git repository +function M.get_project_id() + local remote_url = vim.fn['fugitive#RemoteUrl']() + remote_url = remote_url:gsub("/", ":") + return remote_url +end + +return M diff --git a/symlinks/config/nvim/lua/vim_rest_console_extensions.lua b/symlinks/config/nvim/lua/vim_rest_console_extensions.lua index 27b4420..7d4322f 100644 --- a/symlinks/config/nvim/lua/vim_rest_console_extensions.lua +++ b/symlinks/config/nvim/lua/vim_rest_console_extensions.lua @@ -42,12 +42,26 @@ function M.open_scratch_rest_console() end -- Opens up a rest console which can be saved -- cached by name -function M.open_cached_rest_console(name) +function M.open_cached_rest_console(...) + local name = select(1, ...) + if (select('#', ...) == 0) then + name = require'common.projects'.get_project_id() + end + open_cached_rest_console(name) +end + +-- Opens up a rest console which can be saved -- cached by name +function M.open_named_cached_rest_console(name) + name = require'common.projects'.get_project_id() .. name open_cached_rest_console(name) end -- Opens up a rest console based on local file path -function M.open_rest_console(file) +function M.open_local_rest_console(...) + local file = select(1, ...) + if (select('#', ...) == 0) then + file = 'default' + end open_rest_console(file) end diff --git a/symlinks/config/nvim/plugin/rest.lua b/symlinks/config/nvim/plugin/rest.lua index b6266c1..41c7e57 100644 --- a/symlinks/config/nvim/plugin/rest.lua +++ b/symlinks/config/nvim/plugin/rest.lua @@ -3,6 +3,6 @@ ------------------------------------------------------------------------------- vim.cmd[[command! -nargs=0 ScratchRestConsole :lua require('vim_rest_console_extensions').open_scratch_rest_console()]] -vim.cmd[[command! -nargs=1 RestConsole :lua require('vim_rest_console_extensions').open_cached_rest_console()]] -vim.cmd[[command! -nargs=1 RestConsoleLocal :lua require('vim_rest_console_extensions').open_local_rest_console()]] -vim.cmd[[command! -nargs=1 RestConsoleCached :lua require('vim_rest_console_extensions').open_cached_rest_console()]] +vim.cmd[[command! -nargs=? RestConsole :lua require('vim_rest_console_extensions').open_cached_rest_console()]] +vim.cmd[[command! -nargs=? RestConsoleLocal :lua require('vim_rest_console_extensions').open_local_rest_console()]] +vim.cmd[[command! -nargs=1 RestConsoleCached :lua require('vim_rest_console_extensions').open_named_cached_rest_console()]]