diff --git a/nvim/.config/nvim/lua/scratchpad.lua b/nvim/.config/nvim/lua/scratchpad.lua index 7e58c45..6c7e3da 100644 --- a/nvim/.config/nvim/lua/scratchpad.lua +++ b/nvim/.config/nvim/lua/scratchpad.lua @@ -1,11 +1,40 @@ +--[[ +creates a 'scratch' buffer which is ephemeral -- +it will disappear when vim closes, does not save to anything and does not +appear in the buffer list. Useful for e.g. jotting down quick notes and thoughts. + +If called with bang, will replace the current buffer with the scratch +window, otherwise opens a new split. + +The buffer, by default is set to the pandoc filetype. +This can be changed by setting the `g:scratchpad_ft` variable or the `b:scratchpad_ft` +variable to the intended filetype. +]]-- local api = vim.api local M= {} -function M.makeScratch() - api.nvim_command('enew') - -- vim.bo[0].bufhidden=hide - vim.bo[0].buftype=nofile - vim.bo[0].swapfile=false +local function isempty(s) + return s == nil or s == '' +end + +function M.create(split, ft) + -- should we create a new split or switch out the current buffer? + if isempty(split) then split = false else split = true end + -- which filetype to set for the scratchpad, defaults to pandoc + if isempty(ft) then ft = vim.b["scratchpad_ft"] or vim.g["scratchpad_ft"] or "pandoc" end + + local buf = api.nvim_create_buf(false, true) + if buf == 0 then + print("Error opening scratch buffer.") + end + api.nvim_buf_set_option(buf, "bufhidden", "hide") + api.nvim_buf_set_option(buf, "buftype", "nofile") + api.nvim_buf_set_option(buf, "swapfile",false) + api.nvim_buf_set_option(buf, "filetype",ft) + + if split then api.nvim_command('vsplit new') end -- i think this is the only way to interact with the buffers creating a new split + -- switch to scratchpad + api.nvim_win_set_buf(0, buf) end return M diff --git a/nvim/.config/nvim/plugin/personal/makescratch.vim b/nvim/.config/nvim/plugin/personal/makescratch.vim index 1a5a233..99cb3ce 100644 --- a/nvim/.config/nvim/plugin/personal/makescratch.vim +++ b/nvim/.config/nvim/plugin/personal/makescratch.vim @@ -1,5 +1,15 @@ -function s:makeScratch() - lua require('scratchpad').makeScratch() -endfunction +" --[[ scratchpad.lua +" +" creates a 'scratch' buffer which is ephemeral -- +" it will disappear when vim closes, does not save to anything and does not +" appear in the buffer list. Useful for e.g. jotting down quick notes and thoughts. +" +" If called with bang, will replace the current buffer with the scratch +" window, otherwise opens a new split. +" +" The buffer, by default is set to the pandoc filetype. +" This can be changed by setting the `g:scratchpad_ft` variable or the `b:scratchpad_ft` +" variable to the intended filetype. +" ]]-- -command! ScratchPad call s:makeScratch() +command! -nargs=? -bang ScratchPad :lua require("scratchpad").create("","") diff --git a/nvim/.config/nvim/spell/en.utf-8.add b/nvim/.config/nvim/spell/en.utf-8.add index 2466bd3..ffef326 100644 --- a/nvim/.config/nvim/spell/en.utf-8.add +++ b/nvim/.config/nvim/spell/en.utf-8.add @@ -72,3 +72,7 @@ dialogue Uber precarity financialization +Walmart +Wrocław +Poznań +Taylorization