ref: rename `Vars` -> `Var`

pull/26/head
Iron-E 3 months ago
parent f203350882
commit 6c0071fc8e
No known key found for this signature in database
GPG Key ID: 569E791B76A42A1A

@ -3,7 +3,7 @@
]]
--- WARN: do not import this in your code! it is not part of the public API.
local Vars = require 'libmodal.utils.Vars'
local Var = require 'libmodal.utils.Var'
--- Check the value of the local var
--- @param var any
@ -41,7 +41,7 @@ local mode_name = 'Foo'
local var_name = 'Bar'
--- WARN: do not use this function in your code! It is not part of the public API.
local foo = Vars.new(mode_name, var_name)
local foo = Var.new(mode_name, var_name)
-- 1. baseline

@ -13,11 +13,11 @@ local utils = require 'libmodal.utils' --- @type libmodal.utils
--- @field private ns number the namespace where cursor highlights are drawn on
--- @field private popups libmodal.collections.Stack
--- @field private supress_exit boolean
--- @field public count libmodal.utils.Vars[number]
--- @field public count1 libmodal.utils.Vars[number]
--- @field public exit libmodal.utils.Vars[boolean]
--- @field public input libmodal.utils.Vars[number]
--- @field public timeouts? libmodal.utils.Vars[boolean]
--- @field public count libmodal.utils.Var[number]
--- @field public count1 libmodal.utils.Var[number]
--- @field public exit libmodal.utils.Var[boolean]
--- @field public input libmodal.utils.Var[number]
--- @field public timeouts? libmodal.utils.Var[boolean]
local Mode = utils.classes.new()
local HELP_CHAR = '?'
@ -259,10 +259,10 @@ function Mode.new(name, instruction, supress_exit)
-- inherit the metatable.
local self = setmetatable(
{
count = utils.Vars.new(name, 'count'),
count1 = utils.Vars.new(name, 'count1'),
exit = utils.Vars.new(name, 'exit'),
input = utils.Vars.new(name, 'input'),
count = utils.Var.new(name, 'count'),
count1 = utils.Var.new(name, 'count1'),
exit = utils.Var.new(name, 'exit'),
input = utils.Var.new(name, 'input'),
instruction = instruction,
name = name,
ns = vim.api.nvim_create_namespace('libmodal' .. name),
@ -293,7 +293,7 @@ function Mode.new(name, instruction, supress_exit)
self.popups = require('libmodal.collections.Stack').new()
-- create a variable for whether or not timeouts are enabled.
self.timeouts = utils.Vars.new(self.name, 'timeouts', vim.g.libmodalTimeouts)
self.timeouts = utils.Var.new(self.name, 'timeouts', vim.g.libmodalTimeouts)
end
return self

@ -3,9 +3,9 @@ local utils = require 'libmodal.utils' --- @type libmodal.utils
--- @class libmodal.Prompt
--- @field private completions? string[]
--- @field private indicator {hl: string, text: string}
--- @field private exit libmodal.utils.Vars
--- @field private exit libmodal.utils.Var
--- @field private help? libmodal.utils.Help
--- @field private input libmodal.utils.Vars
--- @field private input libmodal.utils.Var
--- @field private instruction fun()|{[string]: fun()|string}
--- @field private name string
local Prompt = utils.classes.new()
@ -113,9 +113,9 @@ function Prompt.new(name, instruction, user_completions)
local self = setmetatable(
{
exit = utils.Vars.new(name, 'exit'),
exit = utils.Var.new(name, 'exit'),
indicator = {hl = 'LibmodalStar', text = '* ' .. name .. ' > '},
input = utils.Vars.new(name, 'input'),
input = utils.Var.new(name, 'input'),
instruction = instruction,
name = name
},

@ -1,36 +1,36 @@
--- @class libmodal.utils.Vars
--- @param str_with_spaces string
--- @param first_letter_modifier fun(s: string): string
local function no_spaces(str_with_spaces, first_letter_modifier)
local split_str = vim.split(str_with_spaces:gsub(vim.pesc '_', vim.pesc ' '), ' ')
--- @param str string
--- @param func fun(s: string): string
local function camel_case(str, func)
return func(str:sub(0, 1) or '') .. (str:sub(2) or ''):lower()
end
split_str[1] = camel_case(split_str[1], first_letter_modifier)
for i = 2, #split_str do split_str[i] =
camel_case(split_str[i], string.upper)
end
return table.concat(split_str)
end
--- @class libmodal.utils.Var
--- @field private mode_name string the highlight group to use when printing `str`
--- @field private value? unknown the local value of the variable
--- @field private var_name string the highlight group to use when printing `str`
local Vars = require('libmodal.utils.classes').new()
local Var = require('libmodal.utils.classes').new()
--- create a new set of variables
--- @param mode_name string the name of the mode
--- @param var_name string the name of the key used to refer to this variable in `Vars`.
--- @param var_name string the name of the key used to refer to this variable in `Var`.
--- @param default_global? unknown the default global value
--- @return libmodal.utils.Vars
function Vars.new(mode_name, var_name, default_global)
local self = setmetatable({}, Vars)
--- @param str_with_spaces string
--- @param first_letter_modifier fun(s: string): string
local function no_spaces(str_with_spaces, first_letter_modifier)
local split_str = vim.split(str_with_spaces:gsub(vim.pesc '_', vim.pesc ' '), ' ')
--- @param str string
--- @param func fun(s: string): string
local function camel_case(str, func)
return func(str:sub(0, 1) or '') .. (str:sub(2) or ''):lower()
end
split_str[1] = camel_case(split_str[1], first_letter_modifier)
for i = 2, #split_str do split_str[i] =
camel_case(split_str[i], string.upper)
end
return table.concat(split_str)
end
--- @return libmodal.utils.Var
function Var.new(mode_name, var_name, default_global)
local self = setmetatable({}, Var)
self.mode_name = no_spaces(mode_name, string.lower)
self.var_name = 'Mode' .. no_spaces(var_name, string.upper)
@ -45,7 +45,7 @@ end
--- @generic T
--- @return T value the local value if it exists, or the global value
function Vars:get()
function Var:get()
local local_value = self:get_local()
if local_value == nil then
return self:get_global()
@ -56,18 +56,18 @@ end
--- @generic T
--- @return T global_value the global value
function Vars:get_local()
function Var:get_local()
return self.value
end
--- @generic T
--- @return T global_value the global value
function Vars:get_global()
function Var:get_global()
return vim.g[self:name()]
end
--- @return string name the global Neovim setting
function Vars:name()
function Var:name()
return self.mode_name .. self.var_name
end
@ -76,7 +76,7 @@ end
--- too-eagerly shadow the global variable.
--- @param val unknown set local value if it exists, or the global value
--- @return nil
function Vars:set(val)
function Var:set(val)
if self:get_local() == nil then
self:set_global(val)
else
@ -86,13 +86,13 @@ end
--- @param val unknown set the local value equal to this
--- @return nil
function Vars:set_local(val)
function Var:set_local(val)
self.value = val
end
--- @param val unknown set the global value equal to this
--- @return nil
function Vars:set_global(val)
function Var:set_global(val)
if val == nil then
vim.api.nvim_del_var(self:name()) -- because `nvim_set_var('foo', nil)` actually sets 'foo' to `vim.NIL`
else
@ -100,4 +100,4 @@ function Vars:set_global(val)
end
end
return Vars
return Var

@ -3,14 +3,14 @@
--- @field classes libmodal.utils.classes
--- @field Help libmodal.utils.Help
--- @field Popup libmodal.utils.Popup
--- @field Vars libmodal.utils.Vars
--- @field Var libmodal.utils.Var
local utils =
{
api = require 'libmodal.utils.api',
classes = require 'libmodal.utils.classes',
Help = require 'libmodal.utils.Help',
Popup = require 'libmodal.utils.Popup',
Vars = require 'libmodal.utils.Vars',
Var = require 'libmodal.utils.Var',
}
--- `vim.notify` with a `msg` some `error` which has a `vim.v.throwpoint` and `vim.v.exception`.

Loading…
Cancel
Save