Vlad
Благодарю
Mark ☢️
а ещё, под маздаем, там может быть \r\n
Mark ☢️
но это не точно
Mark ☢️
в сортах не разбираюсь
Vlad
Похоже на то, да
Mark ☢️
лэл. маздай прекрасен
Vlad
А, я забыл, я на убунте
Vlad
Проблема в индентации хередоков
Vlad
local expected = [[ ID foo NEWLINE ]] Добавляет индентацию как перед каждой строкой, так и на строке с ]]. Неожиданно на фоне других языков
Snusmumriken
Нет, ровно как ты забиваешь — так оно и есть. А почему оно должно опускать пробелы?
Mark ☢️
и в сях
Vlad
Ну, э. Я ожидаю, что индентация начнется с первого значимого символа, как в рубях
Mark ☢️
я про руби
Snusmumriken
Если ты хочешь красиво форматировать вот такое — конкатенация тебе в помощь. local expected = [[ ID foo NEWLINE]] 1. local expected = "ID foo\n" .. "NEWLINE" 2. local expected = { "ID foo", "NEWLINE" } expected = table.concat(expected, "\n")
Mark ☢️
а ещё можно из файла прочитать
Snusmumriken
Ну, э. Я ожидаю, что индентация начнется с первого значимого символа, как в рубях
А откуда луа знает, что таб или пробел — это незначащие символы? Вдруг они играют огромное значение? ))
Vlad
Да, конкат таблицы более-менее
Snusmumriken
Ну вот, а в большинстве остальных ЯП, красота приведена в жертву точности.
Vlad
Не помешал бы литерал для рубишных хередоков
Snusmumriken
Напиши препроцессор, как мунскрипт.
Vlad
Где можно найти удобный список всех функций Lua, включая стандартные библиотеки? На одной странице чтобы, а не главы книги на lua.org
Vlad
И вот есть ещё [=[, тоже хередок. Где найти список всех литералов в Луа?
Vlad
Да, да, все поняли, что вы тут хардкорщики. Хомяку нужно всё на блюдечке
Vlad
https://www.lua.org/manual/5.1/manual.html#5.4 Ctrl+F heredoc 0
Mark ☢️
https://github.com/zhaozg/lua-openssl/issues/185
Mark ☢️
смотрите какой я молодец
Mark ☢️
скоро ещё один наброс будет.
🐅🤦‍♂️
https://www.lua.org/manual/5.1/manual.html#5.4 Ctrl+F heredoc 0
Так ты ищи по ключевым словам comment. В конце руководства вроде есть BNF запись синтаксиса полная
Snusmumriken
И вот есть ещё [=[, тоже хередок. Где найти список всех литералов в Луа?
Инлайн-строки: foo = "blabla" или bar = 'blablabla' Если в строке встречаются оба типа кавычек — foobar = "bla'bla' \"blabla\" yo" Многострочные: foo = [[bla blabla bla]] Если в строке встречаются [[ или ]] или [=[ или ]=] — количество "=" между скобками может быть произвольным, но одинаковым. bar = [=====[ bla [[ ]=] blagbla]=======] [==[blabla bla ]=====] К многострочным комментариям это так же относится. Андестенд?
Vlad
Да, отлично. Благодарю, супер-класс!
Vlad
Я бы сказал, что здесь есть слегка неинтуитивные вещи
Mark ☢️
вангую это фича чтобы коментить (или включать в виде строки) луа-код
Snusmumriken
О, забыл что первый перенос, в случае пустой первой строки игнорируется. foo = [[bla bla]] == foo = [[ bla bla]]
Vlad
Вот бы также и последний игнорировался
Vlad
А иначе ВДРУГ ПЕРВЫЙ ПЕРЕНОС ВАЖЕН
Vlad
\n же, не пропадать добру
Snusmumriken
А иначе ВДРУГ ПЕРВЫЙ ПЕРЕНОС ВАЖЕН
Ну, если тебе нужен первый перенос — foo = [[ bla bla ]] Но да, это ужасно, точность полностью теряется, мы все умрём от недостатка точности.
Snusmumriken
Не а, если добавить хоть пробел foo = [[ <--пробел bla ]] "нулевой" не потеряется ))
Vlad
Замечу, что у меня во всех редакторах стоит удаление trailing spaces
Snusmumriken
Молодец, умница : ) А я предпочитаю чтобы редактор ничего не делал без моего ведома, даже не проставлял закрывающие скобочки.
Snusmumriken
В смысле?
Mark ☢️
В смысле?
Он ругается на пробелы в конце строк и отсутствие последнего перевода строки в файлах
Snusmumriken
Нет.
Mark ☢️
Соответственно это приводит к мердж конфликтам в некотррых ситуациях
Snusmumriken
Только если у тебя есть коллеги, которые удаляют за тобой пробелы пока ты редактируешь файлы.
Snusmumriken
Плюс никто не мешает мне чистить пробелы руками или вызовом конкретной функции notepad++ )) Без автоматики.
Snusmumriken
А то я такой пишу скобочку, и блокнот тут же следующую подсовывает. Зачем? Непонятно, приходится удалять. Или я такой тыкаю сразу на обе скобки, а получается ()), никрута. Особенно жутко, если я такой леплю закрывающую скобку, а редактор такой решает что раз следующий символ — тоже закрывающая, то он её типа оверрайдит. Ощущение будто оно живёт своей жизнью.
Mark ☢️
Автоформат по хоткею
Mark ☢️
Использую пичальм + плюгин эммилуа
Dadaskis
М?
Mark ☢️
М?
Спам был
Pavel
10 ?
Pavel
а вопрос гаде?
Ivan
Ты потерялась?
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Как вы шифруете шифровать?
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Так что мой файл lua находится в безопасности, где я должен зашифровать свой файл
Tverd
Как вы шифруете шифровать?
Можно использовать luac
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Можно использовать luac
Можете выслать апк пожалуйста
Tverd
Можете выслать апк пожалуйста
luac идет в составе lua. https://www.lua.org/download.html
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Tverd
Для чего используется lua? Он является скриптовым языком для какого-то приложения?
Andrey
Всем привет. Я с сокетами практически не работал, хочу вот проконсультироваться что бы не изобретать велосипед. В общем есть железка и к ней соединение по телнету через сокеты с компа с луи - демона (крутится постоянно собирает данные). Проблема в том что иногда соединение теряется. И оно посылает команду и ждет ответа а соединения нет. Как правильно проверять соединение и восстанавливать его, если оборвалось ? Как вариант другим скриптом пинговать - и влиять на первый.
Andrey
используем вот это: http://w3.impa.br/~diego/software/luasocket/socket.html
Snusmumriken
Receive с таймаутом (вплоть до нулевого), и проверка статуса. local data, status, err = sock:receive("*l")
Andrey
так просто ? Спасибо!
Snusmumriken
В целом, при бесконечном таймауте и обрыве соединения, оно просто прервёт приём, вернёт nil вместо data и, статус типа 'disconnected' или что-то такое, проверь.