Size: a a a

2021 May 31

goldstein опять in pro.vim
GC непредсказуем же
источник

goldstein опять in pro.vim
А __close именно в конце скоупа
источник

goldstein опять in pro.vim
Ещё начиная с 5.2 можно поменять таблицу с переменными
источник

goldstein опять in pro.vim
local _ENV = { a = 2 }
print(a) -- 2
источник

G

GNU/Vsevolod in pro.vim
Ксати, какая алг. сложность #mytable?
источник

goldstein опять in pro.vim
Да
источник

goldstein опять in pro.vim
O(1), кажется, если без шуток
источник

goldstein опять in pro.vim
Но внутрянка луашных таблиц это жесть
источник

G

GNU/Vsevolod in pro.vim
источник

goldstein опять in pro.vim
Там есть оптимизация
источник

goldstein опять in pro.vim
https://github.com/lua/lua/blob/master/ltable.c#L924
Вот релевантный код
источник

goldstein опять in pro.vim
Если у штуковины есть limit и в нём лежит nil, то операция будет за O(1)
источник

goldstein опять in pro.vim
И вроде как операции над таблицей двигают limit, так что в хорошем случае это O(1)
источник
2021 June 01

VG

Vadim Goncharov in pro.vim
ад какой! я конечно всегда поливал их говном за совмещение массивов и хэшей, но не думал, что это приводит к ТАКИМ проблемам
источник

goldstein опять in pro.vim
Это не приводит
источник

goldstein опять in pro.vim
Если у тебя есть массив который выглядит типа как массив, то это будет за O(1)
источник

VG

Vadim Goncharov in pro.vim
так чувак в конце рассматривает ситуацию, что будет, если удалить где-то посередине
источник

goldstein опять in pro.vim
Если удалить без сдвига, то да
источник

goldstein опять in pro.vim
Массивы с дырками работают хуже, чем без дырок
источник

G

GNU/Vsevolod in pro.vim
Для hover окон nvim-lsp отнедавна можно сделать рамку, вот так
local method = 'textDocument/hover'
vim.lsp.handlers[method] = vim.lsp.with(
 vim.lsp.handlers[method],
 {border = 'single'}
)
что можно класть в border — :h nvim_open_win()
источник