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

    <tr>
        <th>Summary</th>
        <td>
            SpaceBeforeSquareBrackets doesn't ignore C# is keyword
        </td>
    </tr>

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

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

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

<pre>
    It doesn't look like the option `SpaceBeforeSquareBrackets` for `clang-format` takes into consideration the C# `is` the keyword. It seems like it's identified as a possible variable, despite it being a keyword. So it removes any space between `is` and the braces.

Here is an example:

<img width="1370" alt="Screenshot 2023-04-05 at 2 50 07 PM" src="https://user-images.githubusercontent.com/30395560/230219744-594237ee-6882-4c37-9024-501a30a34b3f.png">

Here is the all the code from the files, for context:

```cs
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Logger.Tests;

[TestClass]
public class FileLoggerTests : FileLoggerTestsBase
{
    [TestMethod]
    public void Create_GivenClassAndValidFileName_Success()
    {
 Assert.AreEqual(nameof(FileLoggerTests), Logger.LogSource);
 Assert.AreEqual(FilePath, Logger.FilePath);
    }

 [TestMethod]
    public async Task Log_Message_FileAppended()
    {
 Logger.Log(LogLevel.Error, "Message1");
 Logger.Log(LogLevel.Error, "Message2");

        string[] lines = await File.ReadAllLinesAsync(FilePath);
        Assert.IsTrue(lines is[..] and { Length : 2 });
        foreach (string[] line in lines.Select(line => line.Split(',', 4)))
        {
            if (line is[string dateTime, string source, string levelText, string message])
 {
                Assert.IsTrue(DateTime.TryParse(dateTime, out _));
 Assert.AreEqual(nameof(FileLoggerTests), source);
 Assert.IsTrue(Enum.TryParse(typeof(LogLevel), levelText, out object? level) ?
                    level is LogLevel.Error : false,"Level was not parsed successfully.");
            }
        }
 }
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVk1v4zgM_TXKhYihSHacHHLIR7M7QLsYTLpzLWSbcbSVJY8ot9N_v5DtNkmn3VmhcOon8fGRomgpIl1bxBXLNizbTVQXTs6vDsErW-O3-PCTwlUvqy8BKodkmcgDGOcewehHhHBCcG3QzgKb80OrStzg0Xk8_OiUx41X5SMGYnMOR-fjmtIoW0-PzjcqRDioRyTQNjgonSVdoVc9X6TeMiGjke4ZIvKIL8_OVwl8CUCIDQ06dGAiJ9AV2qCPGitQBApaR6QLg_CkvFaFQSa2UCG1OkQbKFDbGtSZ9eAi7LFxT0ig7AtQjAkKDM-I9qxF2arXU3hVIiWM7xhfD88_0SPoaA34UzWtQSbXlwuY3OqmhmddhROTOybETOacCQHKhAE4lB7R0skFEFzIKU-nPAMVQEDGgefw9S6uJ18O608htBTdiD0T-47QT3WjaqSk1uHUFREpnQ1oQ1K6hom95HKZZXPOxF5ILmbLPE2n2TIVMkeczhcLMU1LmU-XXKTTjM-U5EqmhTwmra2ZEEzefBR0zIkypv8tXYVw9K7p347aIMX8x0LotfwM7xMz58NfSQPQUdyfO116R-4Yku-aOmUOoau0S-6Rwr1zhpK_rQ7xTduayc0lo1UNDjt46-oafW9E7xaxbBPhrVFELNsNYNsVRpdQRhD22uBA0NsDk-v32EYRjnT5yA4AMHLfYTi56o08zowOnpyuYOtRBXz4Qz-h7WWsbfVdGV1FJ3-pBh8OXVkiERMLJpYX9G--1kToQ7L2ePOjU4aJRYzdHZlYvFMaCcT2NSG3rj64zpcYYfk5WyT5qsLpwvQMXVj2onaX6f19DhS92BLuFT1G6oc7JFI1PkT-dduirbD6PPBzHEwsbl19i09okhvvnY9amRAj3yxW7aXU_20p3lmeZcRBwcfC6zsoGG0x1scO1LPSoa-S5Buqam3MbZxbx1iv8nmdvDjG7H-he98hE4uBVBPLNkkSvcTuw_IN3KKtw6kvR9Gn_QOy2I1VeQImFr8oBW0HxckBDZZh9BX1M3nTTyWH1sTuumAiZ2I7PCHti2h5tSXX23Ix9BFeifsYBhlQqYD3uul78gjRWIlvgIlbch87xRlrhk2JhfTm_kO_H6VyNzpN7v3LV-UpYpdCXBfgYYzsP07Db84WfXqi3oTc2K65FBFe2oHxtRBHqqsMRHWu-CfulNwPU0wsgcn9x9HH0a-Krfm6wvuiOSoTnW-ZEP0UPCsC6wK0UVUFNHSdY2fMS_L--FyMtxP_K3BuBm__vHb5SbWS1VIu1QRXs_mC53KWZXxyWhWyVLks0irPZ7hQPE1zkRccERclL1I-0av4VeQpz8QsE5In1ULN84qXXPASl1XJUo6N0iYx5qlJnK8nmqjD1Xy2nGcTowo01F96hLD4DP1kjC_bTfwq2kyLriaWcqMp0Jkl6GBw9ek95-KOpGvr_HiD0fR6w5h03qyuP9bDB3r8KkdH48-09a7fabHv5RET-17-vwEAAP__7mHvqA">