コード例 #1
0
        private static IList <IMappingTarget> ParseMappingTargets(string exerciseText)
        {
            var mappingTargets = new List <IMappingTarget>();

            var iNext = 0;

            while (iNext < exerciseText.Length)
            {
                var isSpecial = TryParseSpecial(exerciseText, ref iNext, out IMappingTarget mappingTarget);

                IMappingTarget target;
                if (isSpecial)
                {
                    target = mappingTarget;
                }
                else
                {
                    var character = exerciseText[iNext];
                    target = new CharacterMappingTarget(character);
                    iNext++;
                }

                mappingTargets.Add(target);
            }

            return(mappingTargets);
        }
コード例 #2
0
        private static bool TryImportPrintableMapping(
            string mappingTarget,
            KeyboardKey keyboardKey,
            out IKeyboardKeyMapping keyMapping)
        {
            var parseSuccess = CharacterMappingTarget.TryImport(mappingTarget, out CharacterMappingTarget character);

            keyMapping = parseSuccess ? new KeyMapping(keyboardKey, character) : null;
            return(parseSuccess);
        }