Светомеч
https://youtu.be/52yhBkkulXw
Yogurt
Мы уже в лс оьмазываемчся
Светомеч
https://youtu.be/52yhBkkulXw
Тут математик кстати зав. кафедры моего факультета был)
Snusmumriken
B
как организовать вызов самого себя?
B
в плане, без привязки к расположению
B
типа мы можем применить что то типа dofile(фулл путь к файлу) \\ профит а есть ли возможность без указания всего пути а только лишь указание файла?
Alexander
что-то говорили про три точки в этом плане
Snusmumriken
Воу-воу-воу
Snusmumriken
Я делал отдельный модуль "relativepath"
Alexander
три точки?
Snusmumriken
local path = love and arg[1]:match'(.*[\\/])' or arg[0]:match'(.*[\\/])' local luapath = { path..'?.lua', path..'?/init.lua' } local cpath = { path..'?.dll', path..'?/core.dll' } luapath = table.concat(luapath, ';') cpath = table.concat(cpath, ';') if not package.path:find(luapath) then package.path = luapath..';'..package.path end if not package.cpath:find(cpath) then package.cpath = cpath..';'..package.cpath end
Snusmumriken
Тут отдельно для love2d и без love2d.
Snusmumriken
После применения этой фигни, можно катать require'file' на относительные модули.
Snusmumriken
Это не шибко красиво, но самое красивое, на что хватило моих мозгов. Зато если несколько раз вызывать эту фигню, она не захламит пути кучей дубликатов, и работает из любого модуля.
Snusmumriken
Три точки можно использовать для хитрых манипуляций с модулями, которые используют другие модули. Там уже: package.path = arg[0]..'/'..(...)..'?.lua;'..package.path Таким образом, мы в файле init.lua нашего модуля добавляем в пути папку со скриптами модуля, чтобы имя папки модуля могло быть произвольным и находиться в произвольном месте.
B
ну должно ж что то быть
B
а если не затруднит можно про это подробнее, в частности про "произвольное местоположение", или хоть ссылочку на мануалы годные?
Snusmumriken
Хе-хе, в мануалах этого нема. Допустим, ты вызываешь модуль: require'folder/modulename' Если в папке folder есть папка modulename со скриптом init.lua - запустится init.lua, которому первым аргументом (в "трёх точках") передастся 'folder/modulename'. С этим уже можно играться.
Snusmumriken
Допустим, в папке modulename сидит пять скриптов, которые нужны init.lua. Как вызывать их, если modulename имеет любой путь и любое имя? Ну, переименовал чувак библиотеку, что, падать с этого? Динамически прописываем в пути путь до своей папки, и вызываем из неё скрипты.
Dmitry
Всем привет пипл чем лучше всего разделить массив на равные части, допустим на 4 равные части (понятно что 4 часть может быть недобита)
Snusmumriken
Луа-табличку - разве что циклом. Это офигенно долго. Или мета-индексами выдать четыре хендлера на этот же массив, каждый на свой диапазон. Это моментально, но только создаёт видимость разбиения: на потоки это не разделишь. Чот типа такого: function genFourHandlers(array) local n = math.floor(#array/4) local function indexgen(n) return function(self, key) if type[key] == 'number' then return array[key + n] end return array[key] end end return setmetatable({}, {__index = indexgen(n)}), setmetatable({}, {__index = indexgen(n*2)}) setmetatable({}, {__index = indexgen(n*3)}) setmetatable({}, {__index = indexgen(n*4)}) end А шо? У тебя огромные массивы?
Dmitry
массивы огромные
Oleg
Пощупал ZeroBrane. Неплохо. Жаль что vim bindings нету. Может кто колхозил?
Можно впихнуть в Vim часть её фич.
Vim-luainspect.
Oleg
Как бы впихнуть лайвкодинг и дебагер.
Oleg
В виме было бы идеально.
Snusmumriken
Слишком много хочешь :3
Snusmumriken
Кстати, зачем лайв кодинг? Ошибки очень неудобно исправлять, перезагружать приходится в любом случае.
Oleg
Ну чтобы играться значениями переменных на ходу. Типа нарисовал плюху на экране, покрутил переменную и смотришь куда плюха двигается.
Oleg
Хотя не критично, можно и без неё.
Snusmumriken
Ты на чём пишешь и графику рисуешь?
Oleg
Я тут в hammerspoon колхожу прогу, для облегчения работы в иллюстраторе.
Oleg
Автоматор такой под макось.
Oleg
Он на луа. Перехват кнопок, руление интерфейсом, и т.п. В люстре много кнопок, помнить их я уже устал. Мысль такая: сделать прогу, которая будет рисовать хинты по хоткам.
Oleg
Ну и упростит их использование. Вместо всяких «cmd-shift-b» можно будет клацнуть «b b» или типа того. Как в vim =)
mva
Как бы впихнуть лайвкодинг и дебагер.
а как ты себе видишь дебаггер в виме?
mva
// да и вообще дебаггер Lua
Oleg
Также как и везде. Брекпоинты, просмотр переменных.
Snusmumriken
Брейкпоинты при лайв-кодинге - весело
Oleg
При дебаге.
mva
кстати, не то, чтобы я пробовал, но, вроде даже с gdb такое может получиться :)
Snusmumriken
А на тему лайв-кодинга - делаешь контрол типа скролла, при наведении на который можно крутить колесом мыши, дабы увеличивать-уменьшать прикреплённую к нему переменную. Если есть доступ к мыши-клаве-дисплею для рендера примитивов-текста - делов на три минуты.
Snusmumriken
Snusmumriken
Это, правда, love2d, и тут прямой доступ к произвольной фигне, и вообще дофига свобод.
Snusmumriken
Где-то с пол года :3 Но тут хороший пример скроллов, которые не дают упарываться лайвкодингом ибо он напряжен и падуч.
Snusmumriken
Но только побаловаться :< Для реальной разработки мало возможно. Всё равно перезагружать.
Snusmumriken
Плюс если много модулей, которые реквайрят другие модули которые реквайрят третьи модули - слишком много мусора собирается.
Snusmumriken
Да, лайв-кодинг бывает разный. Бывает - когда мы меняем файл и изменения в нём тут же отражаются. Там можно менять логику до первой опечатки/ошибки. Но при загрузке, оно должно индексировать все изменения которые вводит файл, и очищать их, перед перезагрузкой. А бывает - когда мы типа в режиме "командной строки", тыкаем код и тут же построчно вводим (вывод - сразу в рантайм и в файл одновременнр). Вот это - нифига не удобно ни для чего кроме баловства.
Dmitry
https://www.youtube.com/watch?v=sHVla9j2VJA
Snusmumriken
Ой мама, я далёк от политики. У меня - маленький воображаемый мирок, в котором я пишу прожки. И этот же мирок позволяет мне писать много хороших прожек.
Snusmumriken
Боюсь что не я такой один. Но тут сама группа - воплощение моего мирка.
B
карочи сложна все, каждый пишит про свое болото как ему краше (...) и прочие радости поясняют люди как то со скрипом
B
в конце концов просто воткнул дистрибутив в папку с проектом (благо он весит 1,5 мб) и проблем стало меньше, оно теперь без особого гемороя ищет все что необходимо, правда как то странно временами идет по папкам которые располагаются над а временами рунается что ничего не находит
B
я уже сам не помню чего хотел, вроде перезапускать консоль без необходимости каждый рас прописывать по мелочи dofile с полным указанием путей расположения, и что б в целом сделать проект отвязаным от расположения всякого, но что то не получилось, в итоге в проекте лежит дистрибутив и батник который при желании выведет текстовый файл с расположением и слегка отформатированным (в луа ж не \ а /) это пожалуй все на что меня хватило 😂
Snusmumriken
Ну, мой мирок довольно широк. Правда, там нет места политике.
Snusmumriken
Политика отнимает эмоциональные силы, а я на них работаю.
Snusmumriken
Приеду домой - скинешь мне свою сборку, сбацаю как нужно.
Snusmumriken
Фигня в том, что все без исключения живут в своих мирках. Только некоторые это осознают. А некоторые - расширяют его по мере возможности.
Snusmumriken
Хех, не совсем. В сравнении с общечеловеческим миром (или хотя бы мирами ценностей отдельных общин), любая индивидуальная картина мира будет мизерной и незначительной.
mva
> LUA https://www.lua.org/about.html#name
Snusmumriken
Хех, ты можешь попробовать вообще перестать делить что-то на позитивное и негативное. Ну, это просто стереотипы, замутняющие твое восприятие. Если увидишь полноту - станет проще и одновременно сложнее. Но не хуже и не лучше. Просто более полно.
Snusmumriken
Знаешь, как шаблоны в голове, которые резко ускоряют решение типичной задачи, но замедляют и ломаются при появлении чего-то нестандартного.
Snusmumriken
Эх, для меня, как для человека который решает очень разные задачи - это полезно.
Snusmumriken
Если твоя жизнь - однообразная рутина - тебе это вредно. Только будешь медленнее работать.
Snusmumriken
Оки :3
Snusmumriken
Вот я дал пример с шаблонами и мышлением не в позитивном и не в негативном оттенке. Полно но довольно серо :3
Snusmumriken
С шаблонами и мышлением. Ну, их описания и свойства.
Snusmumriken
А я не спал сутки :3 Все, скоро будет всем приятных снов, как я сделаю чуваку относительные пути.
Доброй ночи.
B
удачки😁
Yogurt
Да
Yogurt
Ну эм
Yogurt
А ты пробовал?
Snusmumriken
Прости пожалуйста, а что ты хотел?