feat(snip): improve greek letters

This commit is contained in:
arne314
2025-01-09 12:16:01 +01:00
parent e9824803b5
commit 4f9cf683fc

View File

@@ -24,16 +24,19 @@ local greek_letters_map = {
['m'] = 'mu', ['m'] = 'mu',
['n'] = 'nu', ['n'] = 'nu',
['o'] = 'omega', ['o'] = 'omega',
['p'] = 'pi', ['p'] = 'psi',
['q'] = 'eta', ['q'] = 'eta',
['r'] = 'rho', ['r'] = 'rho',
['s'] = 'sigma', ['s'] = 'sigma',
['t'] = 'tau', ['t'] = 'tau',
['v'] = 'nu',
['w'] = 'omega',
['x'] = 'xi', ['x'] = 'xi',
['y'] = 'upsilon',
['z'] = 'zeta', ['z'] = 'zeta',
} }
local greek_letters = {}
local greek_keys = {} local greek_keys = {}
local greek_letters_set = {}
local common_indices = { '\\d+', '[i-n]' } local common_indices = { '\\d+', '[i-n]' }
local index_conflicts = { 'in', 'ln', 'pi', 'xi' } local index_conflicts = { 'in', 'ln', 'pi', 'xi' }
local index_conflicts_set = {} local index_conflicts_set = {}
@@ -47,8 +50,10 @@ local greek_full = {}
for latin, greek in pairs(greek_letters_map) do for latin, greek in pairs(greek_letters_map) do
greek_full[latin] = greek greek_full[latin] = greek
greek_full[latin:upper()] = upper_first(greek) greek_full[latin:upper()] = upper_first(greek)
table.insert(greek_letters, greek) if not greek_letters_set[greek] then
table.insert(greek_letters, upper_first(greek)) table.insert(greek_letters_set, greek)
table.insert(greek_letters_set, upper_first(greek))
end
table.insert(greek_keys, latin) table.insert(greek_keys, latin)
table.insert(greek_keys, latin:upper()) table.insert(greek_keys, latin:upper())
end end
@@ -59,7 +64,7 @@ end
greek_letters_map = greek_full greek_letters_map = greek_full
trigger_greek = table.concat(greek_keys, '|') trigger_greek = table.concat(greek_keys, '|')
trigger_index_pre = '[A-Za-z]' .. '|' .. table.concat(greek_letters, '|') trigger_index_pre = '[A-Za-z]' .. '|' .. table.concat(greek_letters_set, '|')
trigger_index_post = table.concat(common_indices, '|') trigger_index_post = table.concat(common_indices, '|')
local get_greek = function(_, snippet) return s(nil, t(greek_letters_map[snippet.captures[1]])) end local get_greek = function(_, snippet) return s(nil, t(greek_letters_map[snippet.captures[1]])) end