<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/57041>57041</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            AlignArrayOfStructures: incorrect tab length calculation and column formatting
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          mapron
      </td>
    </tr>
</table>

<pre>
    checked issue On 15.0.0-rc2 tag.

Looks like AlignArrayOfStructures option misinterpret tab width as always 4 spaces (it can be 1-4 for example).

clang-format -i --style="{AlignArrayOfStructures: Left, UseTab: Never, TabWidth: 4}" gives this result
```
enum class ShapeType {
  None,
  Text,
  Line,
  Arrow,
  Rectangle,
  Ellipse,
  Marker,
  ShapedArrow,
  Pixmap,
  Foreground,
  Balloon,
  Lasso,
  Group,
  Border,
  Collage,
  TranscalableImage,
  Background,
};

struct ShapeInfo {
  ShapeType m_type;
  const char *m_id;
};

const ShapeInfo g_shapeCreators[]{
        {ShapeType::Arrow,                         "ArrowInfo"                          },
        {ShapeType::Balloon,                     "BalloonInfo"                  },
        {ShapeType::Border,                     "BorderInfo"                  },
        {ShapeType::Collage,                     "CollageInfo"                  },
        {ShapeType::Ellipse,                     "EllipseInfo"                  },
        {ShapeType::Foreground,         "ForegroundInfo"              },
        {ShapeType::Group,                         "GroupInfo"                          },
        {ShapeType::Lasso,                         "LassoInfo"                          },
        {ShapeType::Line,                         "LineInfo"                          },
        {ShapeType::Marker,                     "MarkerInfo"                  },
        {ShapeType::Pixmap,                     "PixmapInfo"                  },
        {ShapeType::Rectangle,             "RectangleInfo"              },
        {ShapeType::ShapedArrow,                 "ShapedArrow"                  },
        {ShapeType::Text,                         "TextInfo"                          },
        {ShapeType::TranscalableImage, "TranscalableImageInfo"},
        {ShapeType::Background,         "BackgroundInfo"              },
};
```
clang-format -i --style="{AlignArrayOfStructures: Left, UseTab: Never, TabWidth: 4}" gives correct result:

```
const ShapeInfo g_shapeCreators[]{
    {ShapeType::Arrow,             "ArrowInfo"            },
    {ShapeType::Balloon,           "BalloonInfo"          },
    {ShapeType::Border,            "BorderInfo"           },
    {ShapeType::Collage,           "CollageInfo"          },
    {ShapeType::Ellipse,           "EllipseInfo"          },
    {ShapeType::Foreground,        "ForegroundInfo"       },
    {ShapeType::Group,             "GroupInfo"            },
    {ShapeType::Lasso,             "LassoInfo"            },
    {ShapeType::Line,              "LineInfo"             },
    {ShapeType::Marker,            "MarkerInfo"           },
    {ShapeType::Pixmap,            "PixmapInfo"           },
    {ShapeType::Rectangle,         "RectangleInfo"        },
    {ShapeType::ShapedArrow,       "ShapedArrow"          },
    {ShapeType::Text,              "TextInfo"             },
    {ShapeType::TranscalableImage, "TranscalableImageInfo"},
    {ShapeType::Background,        "BackgroundInfo"       },
};
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy9l11vozgUhn8N3FiJHMjnBRdJOrMaqTuz2ulqLysDDnhjbGSbtvn3e4AQbJJuQ1eaCjX4NTw-9jm8lmOZnqIkp8mRpohpXVH0Q6DZYoqneKKSABmSTT384OFt-_9RyqNGnB0p2nKWia1S5PTj8NOoKjGVohrJ0jApUME0E4aqUlEDlBi9stTkiGhE-Cs5aTRHuiQJvOAFa2ZQQgSKKZpN5uggFaJvpCg59YKNM3zCicgm8EBBDJowNJloc4LHwgcvCLzV7nZMXrhFj_RgvGCP_tL0icS18p2-UFVL0P67Dq4W596qRqGMvUBoJmcaAaDi5hzFEp-vpklFVSCISWv0MyclfTqVFEEYbS9C36WAKey75hN9M1bzkTm9ELZ8tdp_0sTAbLn9zBfOWalt5Xeijs00OqEJJB3C_mBvBSkt4atUNFOyEqkl7gjnUgo7RpibtNq_wSs2ZidV6gy_l5yTzJm1IkInhJOY02-F27cjyXEQRZ2AcGcnXTeJbCf2TRykvcL9shfPBn4uryKUSKGhrnKioMS2xTNLe-7VGO3D_RDZs67v94oSI5X2Fjtv8XAZ18MbuL-MDYUDV7_km_ZCCAYOGrlm1hXadzV1tv8PnJ2L7i1AnGUHeA-tz9MZVrMacRjbhyw7xVZkZ3lsZHZJW7SzPJY2KOvzRHvVnexHtL7anZQ28idS2n9MDq6RP4Pr_KN_BWAgXmX0jqlaPtIXSCuOLhDLbHpWK45muS7YL9pFH1shQ3_sCs7R78ddPN1OQi1-Jgm3rLLhDfUO_rGJOP7affcX9f3PwXZId9P7xXtwIpWCXHfbcLi1bXsY2igXR3UlvWvjyP4b-LjTZa3abWLv5C7RtfJRxM7NBzE6hj4qxt7TXaJr6mOIva-7RNfYxxAdb7eIV-5-N7Hz92GubYMfl-vO4odE2-NHEluXR1fE3ujROOLF6gdEx-1HES-GPyA6nj-KaNu-TRza_v1E1_d7ouv7Y2I8W_9VZiz3H5mZ_-P_t4nOBmDFeLUF3Ijx5h7g02i2XOIZxqsN9tMoTDfhhviGGU6j962fic7H67MgpyKDwyDMKKk4ac6LRKRg9bwqBGq3FsNE5leKR7kxZc3wgq9wZczkVTxNZAENzl-6n0mp5D_Ah2ZzjtVws1jh-czPoyBcY5zMF3hNljg9wKkT45gcZrNDjGm4iH1YWMp1VO8PQSDoa3sUrhd48eCzKMBBgNcw5RAv4UAakzBZLFI8i9erNE6X3hzTgjA-reOYSpX5KmpCiqtMQydn2ui-E5wAVonSqN2OfFKZXKoIPhQlhd-MHDWR_wsCfErP">