LINUX.ORG.RU

Есть ли стайлгайд написания кода на Lua?

 ,


0

1

У питона есть свой PEP8. А в lua вообще существует ли общепринятого, лаконичного написания кода? Просто вот смотрю такой код у awesome rc.lua, очень странно:

if awesome.startup_errors then
  naughty.notify({ preset = naughty.config.presets.critical,
          title = "Oops, there were errors during startup!",
           text = awesome.startup_errors })
end

А нельзя ли было написать более лаконично?

if awesome.startup_errors then
  naughty.notify(
    {
      preset = naughty.config.presets.critical,
      title = "Oops, there were errors during startup!",
      text = awesome.startup_errors
    }
  )
end

Зачем эти вермишели?:)

Deleted

А в lua вообще существует ли общепринятого, лаконичного написания кода?

Нигде его нет, ни в каких языках.

xDShot ★★★★★ ()

очень странно:

Потому что твой говноредактор как-то умудрился сломать отступы пробелами.

if awesome.startup_errors then
    naughty.notify({ preset = naughty.config.presets.critical,
                     title = "Oops, there were errors during startup!",
                     text = awesome.startup_errors })
end
xDShot ★★★★★ ()

«лаконично»???

Ты знаешь, что это слово означает? Второй кусок менее лаконичен первому.

anonymous ()
Ответ на: комментарий от xDShot

У меня так то neovim.Ты считаешь что neovim говноредактором? А ты попробуй взглянуть /etc/xdg/awesome/rc.lua. Если конечно у тебя есть awesome. Кто сломал, редактор или он всегда был с таким форматированием?

Deleted ()
Ответ на: комментарий от Deleted

Лаконичность — (лаконизм), краткость, сжатость, немногословность изложение мыслей с использованием наименьшего количества слов.

anonymous ()
Ответ на: комментарий от anonymous

Причет тут это? Я спросил почему ты считаешь второй кусок менее лаконичен первому? Ты же сказал:

Второй кусок менее лаконичен первому.

Давай не будем сцепляться за слова. Шо он означает и т.д. Если ты пришел сюда чтобы обсуждать о правилах написании, орфографии и грамматики, для этого есть отдельные ресурсы в интернете. А это форум для технарей.

Deleted ()

В книжке вообще отступы тремя пробелами предлагали делать. Так что с стайлгайдами всё плохо.

i-rinat ★★★★★ ()

Когда я сам сидел на awesome (3.x), и даже что-то контрибутил по мелочи, то для поддержки кода на lua не было ничего. Ни тулзов, ни стайлгайдов, ни комьюнити, ничего. А кодовая база там немаленькая, и месить её руками, не имея даже банального индентера, не представляется возможным. Поэтому, собственно и перестал сидеть.

d_a ★★★★★ ()
Ответ на: комментарий от Deleted

Давай не будем сцепляться за слова. Шо он означает и т.д.

Один из основных признаков технаря - правильное употребление слов. Придумывание новых смыслов для красиво звучащих слов - признак ГСМ, особенно журнализдов, коим не место на техническом форуме.

Другой анонимус.

anonymous ()
Ответ на: комментарий от Deleted

Редактор твой сломал. gedit у меня показал именно с таким форматированием.

Зачем ставить, если могу содержимое пакета посмотреть.

xDShot ★★★★★ ()
Ответ на: комментарий от xDShot

Значит gedit твой сломал. Source в гитхабе тоже посмотри. Как там ещё отформатирован.

Deleted ()
Ответ на: комментарий от WitcherGeralt

Rationale: There is no agreement in the Lua community as for indentation, so 3 spaces lies nicely as a middle ground between the 2-space camp and the 4-space camp. Also, for a language that nests with do/end blocks, it produces pleasant-looking block-closing staircases, as in the example above.

Deleted ()
Ответ на: комментарий от Deleted

3 spaces lies nicely as a middle ground between the 2-space camp and the 4-space camp

Звучит как троллинг.

WitcherGeralt ★★ ()
Ответ на: комментарий от anonymous

Я второй анонимус, согласен с анонимусом который согласен с другим анонимусом (не первым)

anonymous ()

Есть ли стайлгайд написания кода на Lua?

Изредка у кого-то есть, но остальные на него клали.

У питона есть свой PEP8.

Питон не встраиваемый (или уже да?).

А в lua вообще существует ли общепринятого, лаконичного написания кода?

А нельзя ли было написать более лаконично?

У тебя дичь какая-то.

rc.lua, очень странно

Весь rc.lua можно написать в одну строку, это тебе не Python.

mord0d ★★★★★ ()

Lua не предполагался для написания сколь бы то ни было крупного кол-ва кода, и скорее приспособлен для декларативного описания данных, чем для описания алгоритмов. Соответственно, весь стиль определяется описываемыми данными.

byko3y ★★★★ ()
Ответ на: комментарий от Deleted

предложи как выглядит не дичь

В зависимости от сложности конструкции. Вот это лаконично:

if not something then return end

А это читабельно:

if (something[1] or something[2])
-- перенос ПЕРЕД оператором,
-- чтобы с начала строки было понятно,
-- что это продолжение предыдущей строки
and (something[3] or something[4]) then
  -- action 1
elseif something[1] or something[3] then
  -- action 2
elseif something[2] or something[4] then
  -- action 3
else
  -- action 4
end

Переносить скобки (особенно открывающие) — это маразм, вдвойне маразм размещать только скобки на отдельной строке, так как это не добавляет читабельности а только засоряет видимое пространство.

Мне не нравится форматирование кода апстримом awesome, но твой вариант ещё хуже.

В случае приведённого тобой куска кода я предпочту такую конструкцию:

if awesome.startup_errors then
  naughty.notify({ preset = naughty.config.presets.critical,
    title = "Oops, there were errors during startup!",
    text = awesome.startup_errors
  })
end

Расширяя тему хочу добавить что запись function (args) (с пробелом) вместо function(args) (без пробела) — это тоже нехорошо, также как засорение условий лишними скобками где не надо (этим апстрим не грешит) и многое другое.

Код должен быть в первую очередь читабельным, затем лаконичным.

Ну и на десерт тебе краткая конструкция кода на восемь строк:

local somevar = (somefunc(otherfunc({ arg1 = true, arg2 = "string", arg3 = 42 })[2])("string", 100500)[1](true)[4] or false) and othervar
mord0d ★★★★★ ()

У питона есть свой PEP8.

В большинстве ЯП нет тоталитаризма

annulen ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.