immerrr / lua-mode

Emacs major mode for editing Lua
http://immerrr.github.io/lua-mode
GNU General Public License v3.0
314 stars 74 forks source link

Indenting suggestion #205

Open lemzwerg opened 1 year ago

lemzwerg commented 1 year ago

With version 20220801.503, I get code formatted like the following (I use two spaces for indentation)

if umatch(uchar(c1.char), "[%l%u_]")
  and umatch(uchar(c2.char), "[%l%u_]")
  and umatch(uchar(c3.char), "[_-]")
  and umatch(uchar(c4.char), "[%l%u]")
  and umatch(uchar(c5.char), "[%l%u_]") then
  local pen = node.new(PENALTY)
  pen.penalty = tex.hyphenpenalty
  node.set_attribute(pen, code_attribute, 1)
  node.insert_after(head, c3, pen)
end

IMHO, the positioning of and is unfortunate, since it makes it hard to recognize where the code block actually begins. What I would like to have is a new variable lua-indent-continuation-line-level to get this:

if umatch(uchar(c1.char), "[%l%u_]")
     and umatch(uchar(c2.char), "[%l%u_]")
     and umatch(uchar(c3.char), "[_-]")
     and umatch(uchar(c4.char), "[%l%u]")
     and umatch(uchar(c5.char), "[%l%u_]") then
  local pen = node.new(PENALTY)
  pen.penalty = tex.hyphenpenalty
  node.set_attribute(pen, code_attribute, 1)
  node.insert_after(head, c3, pen)
end

Maybe such a feature is already available; however, I couldn't find it.

lemzwerg commented 1 year ago

Ping!