Repository: microsoft/PowerToys
File: src/modules/poweraccent/PowerAccent.Core/Languages.cs (C#)

Code before:
                LetterKey.VK_5 => new[] { "·" },
                LetterKey.VK_A => new[] { "ā", "á", "ǎ", "à", "ɑ", "ɑ\u0304", "ɑ\u0301", "ɑ\u030c", "ɑ\u0300" },
                LetterKey.VK_C => new[] { "ĉ" },
                LetterKey.VK_E => new[] { "ē", "é", "ě", "è", "ê", "ê\u0304", "ế", "ê\u030c", "ề" },
                LetterKey.VK_I => new[] { "ī", "í", "ǐ", "ì" },
                LetterKey.VK_M => new[] { "m\u0304", "ḿ", "m\u030c", "m\u0300" },
                LetterKey.VK_N => new[] { "n\u0304", "ń", "ň", "ǹ", "ŋ", "ŋ\u0304", "ŋ\u0301", "ŋ\u030c", "ŋ\u0300" },
                LetterKey.VK_O => new[] { "ō", "ó", "ǒ", "ò" },
                LetterKey.VK_S => new[] { "ŝ" },
                LetterKey.VK_U => new[] { "ū", "ú", "ǔ", "ù", "ü", "ǖ", "ǘ", "ǚ", "ǜ" },
                LetterKey.VK_V => new[] { "ü", "ǖ", "ǘ", "ǚ", "ǜ" },
                LetterKey.VK_Y => new[] { "¥" },
                LetterKey.VK_Z => new[] { "ẑ" },
                _ => Array.Empty<string>(),
            };
        }

        // Proto-Indo-European
        private static string[] GetDefaultLetterKeyPIE(LetterKey letter)
        {
            return letter switch
            {
                LetterKey.VK_K => new[] { "ḱ" },
                _ => Array.Empty<string>(),
            };
        }

        // Turkish
        private static string[] GetDefaultLetterKeyTK(LetterKey letter)
        {
            return letter switch
            {
                LetterKey.VK_A => new[] { "â" },
                LetterKey.VK_C => new[] { "ç" },
                LetterKey.VK_E => new[] { "ë", "€" },
                LetterKey.VK_G => new[] { "ğ" },
                LetterKey.VK_I => new[] { "ı", "İ", "î", },
                LetterKey.VK_O => new[] { "ö", "ô" },
                LetterKey.VK_S => new[] { "ş" },
                LetterKey.VK_T => new[] { "₺" },
                LetterKey.VK_U => new[] { "ü", "û" },
                _ => Array.Empty<string>(),
            };
        }

        // Polish
        private static string[] GetDefaultLetterKeyPL(LetterKey letter)
        {
            return letter switch
            {
                LetterKey.VK_A => new[] { "ą" },

Review comment (refactor):
Do we need to add more?
I don't know where are others come from, while from this wiki:
https://en.wikipedia.org/wiki/Proto-Indo-European_language#CITEREFFortson2010
Looks like (I don't know how to systematically extract) there is more than just this.


Code after:
                LetterKey.VK_5 => new[] { "·" },
                LetterKey.VK_A => new[] { "ā", "á", "ǎ", "à", "ɑ", "ɑ\u0304", "ɑ\u0301", "ɑ\u030c", "ɑ\u0300" },
                LetterKey.VK_C => new[] { "ĉ" },
                LetterKey.VK_E => new[] { "ē", "é", "ě", "è", "ê", "ê\u0304", "ế", "ê\u030c", "ề" },
                LetterKey.VK_I => new[] { "ī", "í", "ǐ", "ì" },
                LetterKey.VK_M => new[] { "m\u0304", "ḿ", "m\u030c", "m\u0300" },
                LetterKey.VK_N => new[] { "n\u0304", "ń", "ň", "ǹ", "ŋ", "ŋ\u0304", "ŋ\u0301", "ŋ\u030c", "ŋ\u0300" },
                LetterKey.VK_O => new[] { "ō", "ó", "ǒ", "ò" },
                LetterKey.VK_S => new[] { "ŝ" },
                LetterKey.VK_U => new[] { "ū", "ú", "ǔ", "ù", "ü", "ǖ", "ǘ", "ǚ", "ǜ" },
                LetterKey.VK_V => new[] { "ü", "ǖ", "ǘ", "ǚ", "ǜ" },
                LetterKey.VK_Y => new[] { "¥" },
                LetterKey.VK_Z => new[] { "ẑ" },
                _ => Array.Empty<string>(),
            };
        }

        // Proto-Indo-European
        private static string[] GetDefaultLetterKeyPIE(LetterKey letter)
        {
            return letter switch
            {
                LetterKey.VK_A => new[] { "ā" },
                LetterKey.VK_E => new[] { "ē" },
                LetterKey.VK_O => new[] { "ō" },
                LetterKey.VK_K => new[] { "ḱ" },
                LetterKey.VK_G => new[] { "ǵ" },
                LetterKey.VK_R => new[] { "r̥" },
                LetterKey.VK_L => new[] { "l̥" },
                LetterKey.VK_M => new[] { "m̥" },
                LetterKey.VK_N => new[] { "n̥" },
                _ => Array.Empty<string>(),
            };
        }

        // Turkish
        private static string[] GetDefaultLetterKeyTK(LetterKey letter)
        {
            return letter switch
            {
                LetterKey.VK_A => new[] { "â" },
                LetterKey.VK_C => new[] { "ç" },
                LetterKey.VK_E => new[] { "ë", "€" },
                LetterKey.VK_G => new[] { "ğ" },
                LetterKey.VK_I => new[] { "ı", "İ", "î", },
                LetterKey.VK_O => new[] { "ö", "ô" },
                LetterKey.VK_S => new[] { "ş" },
                LetterKey.VK_T => new[] { "₺" },
                LetterKey.VK_U => new[] { "ü", "û" },
                _ => Array.Empty<string>(),
            };