[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#66152: 30.0.50; Missing indent rules in c-ts-mode
From: |
BTuin |
Subject: |
bug#66152: 30.0.50; Missing indent rules in c-ts-mode |
Date: |
Tue, 26 Sep 2023 14:29:07 +0200 |
User-agent: |
Mozilla Thunderbird |
I found some more issues.
First, there is no rule for an element in an else clause:
if (true)
do_something();
else
do_something_else();
"do_something_else" is not indented.
There is also something weird with the bsd indent style. It indents
do_something and do_something_else to parent-bol with 0 offset, so the
result is:
if (true)
do_something();
else
do_something_else();
It is very different from the bsd style from c-mode, which produces this:
if (true)
do_something();
else
do_something_else();
By looking at random files from OpenBSD, they do indent their
expressions inside if and else:
<https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/net/bsd-comp.c?rev=1.17&content-type=text/plain>
(lines 277, 484, and 527)
Also there is a second patch which tries to handle specific types of
comments. I don't know how popular it is, but some people use these
kind of comments:
/*---------.
| %param. |
`---------*/
Here we want the vertical bar ("|") to be indented at the same column as
the first "/".
Currently the result is this:
/*---------.
| %param. |
`---------*/
This patch is a just proof of concept. If this new behavior is indeed
wanted, I would clean it up and adapt other modes.
0001-c-ts-mode-Add-indentation-rule-for-else_clause.patch
Description: Text Data
0002-c-ts-mode-handle-specific-comment-formatting.patch
Description: Text Data