Andrey Listopadov writes: > john muhl writes: > >> Eli Zaretskii writes: >> >>>> > Another thing that bothers me is that I prefer Gassanenko-style packing >>>> > of `end' keywords so that they vertically align with the scope of the >>>> > opened block, as it saves so much vertical space and is easier for me to >>>> > read, but lua-ts-mode moves it to the latest innermost indentation >>>> > level, as opposed to the outermost depending on the count of ends in the >>>> > line itself: >>>> >>>> I don't see any reason not to support that style but I'm not sure how to >>>> do it. A patch would be welcome but I'll try to figure it out sometime. >>> >>> Maybe introduce indentation styles into lua-ts-mode, like CC Mode and >>> c-ts-mode have? >> >> I’ll have a look at what the c-ts-mode styles do and see what might be >> applicable. In this case the changes can be accommodated by default. > > In my opinion, this isn't distinct enough to introduce a new style. > But it's up to you to decide, of course - I'm all for better editing > experience for Lua! I agree there’s no immediate need. Could you explain what the lua-indent-* options do in lua-mode? I tried toggling them but didn’t see any difference between on/off. >>> A far as I understand it, in the `lua-mode' the overall line indentation >>> is computed via subtracting indentation for every `end' in that line, >>> e.g. `end end end' subtracts `lua-indent-level three times from current >>> indent level. >> >> Thanks for the explanation. The attached patch should make end packing >> work now. > > I've tried your latest patch and indeed `end' now pack themselves as in > the lua-mode. Thank you very much! > >>>> Sure. It's a new mode so nothing is really set in stone. Let me know if >>>> you have other suggestions. > > I noticed that the `do' keyword is indented similarly to `then' before > the patch when put on the new line: > > for i=1,10 > do > print(i) > end > > I'm not sure if that's a proper way to indent it or not though, but `do' > usually signifies start of the scope, so perhaps it shouldn't be > indented in this case. Fixed in the attached. > There are also some weirdness in semantic navigation, but it's more > likely that I'm just not used to new ts-backed navigation yet. I’m sure there is room for improvement here too. Suggestions welcome. > Thanks for your work on lua-ts-mode, it's much more snappy editing > experience now! Glad to hear it. > If you're willing to dig into some (pretty crazy) involved examples, I > can send here some really convoluted nested anonymous functions that > currently are indented in a weird way in both modes. Neither does it > exactly right in my opiion, but I also don't know if there is the right > way to indent this. I can send these examples later this week once I > finish an article I'm working on rightnow. Sure. Whenever you have the time.