aboutsummaryrefslogtreecommitdiff
path: root/lua/colorizer
diff options
context:
space:
mode:
Diffstat (limited to 'lua/colorizer')
-rw-r--r--lua/colorizer/nvim.lua251
1 files changed, 0 insertions, 251 deletions
diff --git a/lua/colorizer/nvim.lua b/lua/colorizer/nvim.lua
deleted file mode 100644
index 3d83bd0..0000000
--- a/lua/colorizer/nvim.lua
+++ /dev/null
@@ -1,251 +0,0 @@
---- Module of magic functions for nvim
--- @module nvim
-
--- Equivalent to `echo vim.inspect(...)`
-local function nvim_print(...)
- if select("#", ...) == 1 then
- vim.api.nvim_out_write(vim.inspect((...)))
- else
- vim.api.nvim_out_write(vim.inspect { ... })
- end
- vim.api.nvim_out_write "\n"
-end
-
---- Equivalent to `echo` EX command
-local function nvim_echo(...)
- for i = 1, select("#", ...) do
- local part = select(i, ...)
- vim.api.nvim_out_write(tostring(part))
- -- vim.api.nvim_out_write("\n")
- vim.api.nvim_out_write " "
- end
- vim.api.nvim_out_write "\n"
-end
-
-local window_options = {
- arab = true,
- arabic = true,
- breakindent = true,
- breakindentopt = true,
- bri = true,
- briopt = true,
- cc = true,
- cocu = true,
- cole = true,
- colorcolumn = true,
- concealcursor = true,
- conceallevel = true,
- crb = true,
- cuc = true,
- cul = true,
- cursorbind = true,
- cursorcolumn = true,
- cursorline = true,
- diff = true,
- fcs = true,
- fdc = true,
- fde = true,
- fdi = true,
- fdl = true,
- fdm = true,
- fdn = true,
- fdt = true,
- fen = true,
- fillchars = true,
- fml = true,
- fmr = true,
- foldcolumn = true,
- foldenable = true,
- foldexpr = true,
- foldignore = true,
- foldlevel = true,
- foldmarker = true,
- foldmethod = true,
- foldminlines = true,
- foldnestmax = true,
- foldtext = true,
- lbr = true,
- lcs = true,
- linebreak = true,
- list = true,
- listchars = true,
- nu = true,
- number = true,
- numberwidth = true,
- nuw = true,
- previewwindow = true,
- pvw = true,
- relativenumber = true,
- rightleft = true,
- rightleftcmd = true,
- rl = true,
- rlc = true,
- rnu = true,
- scb = true,
- scl = true,
- scr = true,
- scroll = true,
- scrollbind = true,
- signcolumn = true,
- spell = true,
- statusline = true,
- stl = true,
- wfh = true,
- wfw = true,
- winbl = true,
- winblend = true,
- winfixheight = true,
- winfixwidth = true,
- winhighlight = true,
- winhl = true,
- wrap = true,
-}
-
--- `nvim.$method(...)` redirects to `nvim.api.nvim_$method(...)`
--- `nvim.fn.$method(...)` redirects to `vim.api.nvim_call_function($method, {...})`
--- TODO `nvim.ex.$command(...)` is approximately `:$command {...}.join(" ")`
--- `nvim.print(...)` is approximately `echo vim.inspect(...)`
--- `nvim.echo(...)` is approximately `echo table.concat({...}, '\n')`
--- Both methods cache the inital lookup in the metatable, but there is a small overhead regardless.
-return setmetatable({
- print = nvim_print,
- echo = nvim_echo,
- fn = setmetatable({}, {
- __index = function(self, k)
- local mt = getmetatable(self)
- local x = mt[k]
- if x ~= nil then
- return x
- end
- local f = function(...)
- return vim.api.nvim_call_function(k, { ... })
- end
- mt[k] = f
- return f
- end,
- }),
- buf = setmetatable({}, {
- __index = function(self, k)
- local mt = getmetatable(self)
- local x = mt[k]
- if x ~= nil then
- return x
- end
- local f
- if k == "line" then
- f = function()
- local pos = vim.api.nvim_win_get_cursor(0)
- return vim.api.nvim_buf_get_lines(0, pos[1] - 1, pos[1], "line")[1]
- end
- elseif k == "nr" then
- f = vim.api.nvim_get_current_buf
- end
- mt[k] = f
- return f
- end,
- }),
- ex = setmetatable({}, {
- __index = function(self, k)
- local mt = getmetatable(self)
- local x = mt[k]
- if x ~= nil then
- return x
- end
- local command = k:gsub("_$", "!")
- local f = function(...)
- return vim.api.nvim_command(table.concat(vim.tbl_flatten { command, ... }, " "))
- end
- mt[k] = f
- return f
- end,
- }),
- g = setmetatable({}, {
- __index = function(_, k)
- return vim.api.nvim_get_var(k)
- end,
- __newindex = function(_, k, v)
- if v == nil then
- return vim.api.nvim_del_var(k)
- else
- return vim.api.nvim_set_var(k, v)
- end
- end,
- }),
- v = setmetatable({}, {
- __index = function(_, k)
- return vim.api.nvim_get_vvar(k)
- end,
- __newindex = function(_, k, v)
- return vim.api.nvim_set_vvar(k, v)
- end,
- }),
- b = setmetatable({}, {
- __index = function(_, k)
- return vim.api.nvim_buf_get_var(0, k)
- end,
- __newindex = function(_, k, v)
- if v == nil then
- return vim.api.nvim_buf_del_var(0, k)
- else
- return vim.api.nvim_buf_set_var(0, k, v)
- end
- end,
- }),
- w = setmetatable({}, {
- __index = function(_, k)
- return vim.api.nvim_win_get_var(0, k)
- end,
- __newindex = function(_, k, v)
- if v == nil then
- return vim.api.nvim_win_del_var(0, k)
- else
- return vim.api.nvim_win_set_var(0, k, v)
- end
- end,
- }),
- o = setmetatable({}, {
- __index = function(_, k)
- return vim.api.nvim_get_option(k)
- end,
- __newindex = function(_, k, v)
- return vim.api.nvim_set_option(k, v)
- end,
- }),
- -- TODO add warning if you try to use a window option here?
- bo = setmetatable({}, {
- __index = function(_, k)
- return vim.api.nvim_buf_get_option(0, k)
- end,
- __newindex = function(_, k, v)
- return vim.api.nvim_buf_set_option(0, k, v)
- end,
- }),
- wo = setmetatable({}, {
- __index = function(_, k)
- return vim.api.nvim_win_get_option(0, k)
- end,
- __newindex = function(_, k, v)
- -- passing v == nil will clear the value, just like above.
- return vim.api.nvim_win_set_option(0, k, v)
- end,
- }),
- env = setmetatable({}, {
- __index = function(_, k)
- return vim.api.nvim_call_function("getenv", { k })
- end,
- __newindex = function(_, k, v)
- return vim.api.nvim_call_function("setenv", { k, v })
- end,
- }),
-}, {
- __index = function(self, k)
- local mt = getmetatable(self)
- local x = mt[k]
- if x ~= nil then
- return x
- end
- local f = vim.api["nvim_" .. k]
- mt[k] = f
- return f
- end,
-})