@ProLua

Страница 169 из 307
Alexey
19.09.2017
08:28:10
Это понятно. Я пока отключаю через -- luacheck: ignore ... Но при этом сокращения кода не получается. a, b, c = nil -- luacheck: ignore vs a,b,c = nil, nil, nil :)

Aydar
19.09.2017
08:29:08
вот из-за такого подхода говнокод и множится
Лично я не игнорирую но можно же

Google
Alexey
19.09.2017
08:30:29
проверка таких предупреждений позваляет найти ошибки. Но после проверки их хочется отключить. Но не глобально

Рома
19.09.2017
08:31:07
a, b, c = nil — так лучше

annelin
19.09.2017
08:31:22
a,b,c = nil,nil,nil

мимокрок

Рома
19.09.2017
08:31:49
a, b, c = nil — то же самое, лучше

annelin
19.09.2017
08:31:56
тогда уж local a,b,c

Alexey
19.09.2017
08:32:18
так при local мне и не нужно

annelin
19.09.2017
08:32:34
зачем тебе вообще объявлять переменную и присваивать ей nil?

Alexey
19.09.2017
08:32:35
просто luacheck на это не ругается

мне нужно присвоить nil нескольким (существующим) переменным

annelin
19.09.2017
08:33:32
хм

странно этот ваш луа работает

a,b,c = 1

Google
annelin
19.09.2017
08:33:41
присваивает единицу только a

a,b,c = nil

присваивает nil всем трём

наркоман)

Рома
19.09.2017
08:33:56
все логично, не?)

annelin
19.09.2017
08:33:59
неа

Alexey
19.09.2017
08:34:49
a,b,c=1 a,b,c=1,nil,nil

Рома
19.09.2017
08:35:25
жалко что нельзя a = b = c = 1

Group Butler [beta]
19.09.2017
08:35:47
Добро пожаловать в чат pro.lua, Алексей! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Рома
19.09.2017
08:35:48
казалось бы, запилили бы это чисто синтаксическим разбором, код языка вообще не надо менять

но нет, леньки видимо

Alexey
19.09.2017
08:37:41
присваивание это statement, а не expression. поэтому нельзя while(a = o:next()) do ... end

Рома
19.09.2017
08:38:38
но можно было бы чисто синтаксическим разбором это понять

что есть написано a = b = 1, имеется в виду a = 1; b = a, преобразовать и парсить себе на здоровье

Vadim
19.09.2017
08:43:14
Это понятно. Я пока отключаю через -- luacheck: ignore ... Но при этом сокращения кода не получается. a, b, c = nil -- luacheck: ignore vs a,b,c = nil, nil, nil :)
ну, я у вима в конфиге ставлю опции луачека которые ему передавать при линтинге :) На код не влияет :)

Alexey
19.09.2017
08:44:43
Иногда подобные warning это ошибки. Поэтому я предпочитаю отключать по одной.

только что прогнал luacheck на qless-core :)

Total: 984 warnings / 0 errors in 2 files

FusionPBX - Total: 11196 warnings / 0 errors in 153 files

Aydar
19.09.2017
10:07:11
Google
Aydar
19.09.2017
12:08:06
https://pastebin.com/hNhKB9nS Почему dkjson так странно формирует таблицу? В коде делаю запрос чтобы получить время последнего захода. Чтобы его посмотреть надо пройти по таблице вот так response_table.response[1].last_seen.time вместо response_table.response.last_seen.time

Aydar
19.09.2017
12:14:10
Alexey
19.09.2017
12:15:25
cjson не собирается из LuaRocks под Windows/MSVC и с LuaJIT 2.1 beta3

PR весят там уже несколько лет

Рома
19.09.2017
12:16:02
То есть это проблема именно этого модуля?
У луа куча библиотек json, зачем? Да просто людям делать нечего было, у меня тоже своя реализация есть, конечно у каждого решения свои проблемы. У cjson проблема, что пустая таблица превращается в пустой {}, а должно бы в [], в остальном самая адекватная либа

Alexey
19.09.2017
12:16:52
Я использую cjson или dkjson когда нужно Pure Lua

Рома
19.09.2017
12:17:40
А, да, лол, пол года уже проблема с луаджитом) но можно проворкараундить

Alexey
19.09.2017
12:19:23
У cjson проблема, что пустая таблица превращается в пустой {}, а должно бы в [] Это почему должна? В Lua {} это и пустой массив и пустой объект, Любой вариант подходит. А вот то как они преобразуют объекты типа {1, 2, 3, a = 'hello'} это спорный момент

Рома
19.09.2017
12:21:44
Типа массив это подкласс объекта, и если получаешь пустой массив, то логика и для пустого массива, и для пустого объекта будет работать норм

Alexey
19.09.2017
12:27:01
Какая логика? JSON это формат данных. И никакой логики там нет. И да {} и [] - разные вещи. Но оба преобразуются в пустую Lua таблицу. Это просто преобразование с потерей некоторой информации. Можно возвращать таблицы со специальной метатаблицей.

Snusmumriken
19.09.2017
12:27:18
Извращение.

Рома
19.09.2017
12:27:53
В луа нет разницы, вот в луа и пофиг, а json для js вообще-то придумали, там логика и ломается из-за {} когда ждешь массив

Alexey
19.09.2017
12:30:44
=require"dkjson".encode(setmetatable({}, {__jsontype='array'}))

dkjson по умолчанию конвертит в массив

Aydar
19.09.2017
12:36:45
Alexey
19.09.2017
12:45:11
На мой взгляд нет идеального API.

Vadim
19.09.2017
12:54:44
cjson не собирается из LuaRocks под Windows/MSVC и с LuaJIT 2.1 beta3
ну, потому что автор прокис, а собирающиеся форки с гитхаба (включая мой и openresty) не возьмут в основной манифест потому что мы не авторы.

Google
Alexey
19.09.2017
12:55:23
Я использую rockspec с патчем

https://github.com/moteus/lua-windows-environment/blob/master/rockspecs/lua-cjson-2.1.0-1.rockspec

Vadim
19.09.2017
12:59:37
отнюдь

ну, в смысле, смотря какая выборка

из тех что умер - да, почти все от потери интереса автора

реже - от смерти / ухода в оффлайн автора

из всех существующих - много живых

Admin
ERROR: S client not available

Aydar
19.09.2017
13:03:07
Стоит ли форматировать код так чтобы строка не превышала 120 символов?

luacheck сигналит

Рома
19.09.2017
13:06:39
но по стандарту < 80 же?

жутко неудобно и не знаю как так люди живут, но есть стандарт такой старше меня

fgntfg
19.09.2017
13:08:07
уже давно нет таких экранов, так что это, скорей, пожалание

Aydar
19.09.2017
13:09:05
fgntfg
19.09.2017
13:09:23
это плохо

Aydar
19.09.2017
13:10:19
это плохо
Можно просто отображение в редакторе поменять а можно форматировать. Что лучше?

fgntfg
19.09.2017
13:10:41
лучше чтоб ничего не мешало читаемости кода

Рома
19.09.2017
13:11:36
когда редактор на пол экрана, или в самом редакторе файлы рядом, или в некоторых просмотрщиках изменений файлы бок-о-бок, тогда 80 вполне пригодится

Aydar
19.09.2017
13:11:37
Google
fgntfg
19.09.2017
13:12:22
у меня, среднедлинные строки в 40-50 символов.

Aydar
19.09.2017
13:13:46
Задам вопрос проще. Что удобнее читать длинный код или тот который ужат до 80?

Рома
19.09.2017
13:16:19
80 это когда у тебя на каждой строчке минимум действий и нет лапши из колбеков, тогда код идеально читаем

а если больше, вероятно, в строки напихано-понапихано всякого подряд

лишь сообщениям об ошибках ядра позволено быть длиннее чтобы их искать можно было

Aydar
19.09.2017
15:08:54
80 это когда у тебя на каждой строчке минимум действий и нет лапши из колбеков, тогда код идеально читаем
А теперь главный вопрос как форматировать код чтобы там не осталось строк длиннее 80 символов?

Snusmumriken
19.09.2017
15:10:18
Ручками считать )))

Aydar
19.09.2017
15:10:56
Ручками считать )))
Наверняка можно как то в автоматическом режиме

Snusmumriken
19.09.2017
15:12:10
Как вариант, автозамена строк в редакторе. replace: from: '\n.{80, 100500}\n' to: '\n--!!!!\0' Типа, перед слишком большой строкой добавятся восклицательные знаки.

Snusmumriken
19.09.2017
15:14:32
Ох. Ничего не изменится. Просто добавится комментарий: "--!!!!!". Типа: "Укороти эту ботву, мудила"

Aydar
19.09.2017
15:15:23
Ох. Ничего не изменится. Просто добавится комментарий: "--!!!!!". Типа: "Укороти эту ботву, мудила"
Правку сообщения не увидел. Я и так знаю какие строки слишком длинные

Snusmumriken
19.09.2017
15:16:20
Тогда укорачивай эту ботву, мудила ))))

Aydar
19.09.2017
15:16:42
Snusmumriken
19.09.2017
15:16:58


Ты хочешь магии, которая за тебя сделает "всё заебись". Так не бывает.

Есть автоматическое форматирование кода в соответствии с правилами. Но если ты сам дурак, и наобъявлял переменных длиной в 100500 символов в имени - ничто тебе не поможет. Кроме минификации. Код после этого нечитаем вообще, хотя и короткий.

Snusmumriken
19.09.2017
15:19:32
Это не валидный код.

Посмотри на 54 строку. Точнее, на её конец. Кавычка открывается, а закрывается - на следующей. Спид. Ручками, ручками давай. 2к строк - это немного, всего пол часа работы обезьянкой.

Страница 169 из 307