Exemplo n.º 1
0
        public void GetStartupItemParameterDepartTest()
        {
            string singleStartupItemString = "chrome-f/alterful.com";
            string param = AInstruction_Startup.GetStartupItemParameterDepart(ref singleStartupItemString);

            Assert.AreEqual("chrome-f", singleStartupItemString);
            Assert.AreEqual("alterful.com", param);
        }
Exemplo n.º 2
0
        public void StartupNameSuffixesParseTest1()
        {
            string      singleStartupItem = "item";
            StartupItem actual            = AInstruction_Startup.StartupNameSuffixesParse(singleStartupItem);

            Assert.AreEqual("item", actual.StartupName);
            Assert.AreEqual(null, actual.SuffixList);
        }
Exemplo n.º 3
0
        public void StartupNameSuffixesParseTest2()
        {
            string      singleStartupItem = "item-o";
            StartupItem actual            = AInstruction_Startup.StartupNameSuffixesParse(singleStartupItem);

            Assert.AreEqual("item", actual.StartupName);
            Assert.AreEqual(1, actual.SuffixList.Count);
            Assert.AreEqual("o", actual.SuffixList[0]);
        }
Exemplo n.º 4
0
        public void GetStartupItemStringListTest()
        {
            string        instruction = "item1 item2-f item3-c-o";
            List <string> actual      = new AInstruction_Startup(instruction).GetStartupItemStringList();

            Assert.AreEqual(3, actual.Count);
            Assert.AreEqual("item1", actual[0]);
            Assert.AreEqual("item2-f", actual[1]);
            Assert.AreEqual("item3-c-o", actual[2]);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 获取指令补全
        /// </summary>
        /// <param name="currentInput">当前的指令输入</param>
        /// <returns></returns>
        public static InputAttribution GetInstructionCompletion(InputAttribution currentInput)
        {
            if (string.IsNullOrEmpty(currentInput.content))
            {
                return(currentInput);
            }
            string targetInstructionLeft, targetInstructionPart, targetInstructionRight;

            GetInstructionCompletionDepart(currentInput, out targetInstructionLeft, out targetInstructionPart, out targetInstructionRight);
            if (string.IsNullOrEmpty(targetInstructionPart))
            {
                return(currentInput);
            }
            InputAttribution retn = currentInput; retn.selectEmpty = true;
            string           cp   = "";

            switch (GetInstructionCompletionPartType(targetInstructionPart))
            {
            case InstructionType.STARTUP:
                cp = AInstruction_Startup.GetCompletion(targetInstructionPart);
                break;

            case InstructionType.MACRO:
                cp = AInstruction_Macro.GetCompletion(targetInstructionPart);
                break;

            case InstructionType.CONST:
                cp = AConstQuote.GetCompletion(targetInstructionPart);
                break;

            case InstructionType.BUILDIN:
                break;
            }

            if (!string.IsNullOrEmpty(cp))
            {
                retn.content     = targetInstructionLeft + cp + targetInstructionRight;
                retn.selectStart = retn.caretPosition = currentInput.caretPosition;
                retn.selectEnd   = retn.selectStart + cp.Length - targetInstructionPart.Length - 1;
                retn.selectEmpty = retn.selectEnd <= 0 || retn.selectEnd < retn.selectStart;
            }

            // Check const-instruction completion at last.
            if (retn.selectEmpty)
            {
                cp               = AConstInstruction.GetCompletion(targetInstructionPart);
                retn.content     = targetInstructionLeft + cp + targetInstructionRight;
                retn.selectStart = retn.caretPosition = currentInput.caretPosition;
                retn.selectEnd   = retn.selectStart + cp.Length - targetInstructionPart.Length - 1;
                retn.selectEmpty = retn.selectEnd <= 0 || retn.selectEnd < retn.selectStart;
            }

            return(retn);
        }
Exemplo n.º 6
0
        public void GetStartupItemsTest()
        {
            string             instruction = "item1 item2-f item3-c-o item4/param item5-f/param item6/param-f";
            List <StartupItem> actual      = new AInstruction_Startup(instruction).GetStartupItems();

            Assert.AreEqual(6, actual.Count);

            Assert.AreEqual("item1", actual[0].StartupName);
            Assert.AreEqual("item2", actual[1].StartupName);
            Assert.AreEqual("item3", actual[2].StartupName);
            Assert.AreEqual("item4", actual[3].StartupName);
            Assert.AreEqual("item5", actual[4].StartupName);
            Assert.AreEqual("item6", actual[5].StartupName);

            Assert.AreEqual(null, actual[0].SuffixList);
            Assert.AreEqual("", actual[0].StartupParameter);

            Assert.AreEqual(1, actual[1].SuffixList.Count);
            Assert.AreEqual("f", actual[1].SuffixList[0]);
            Assert.AreEqual("", actual[1].StartupParameter);

            Assert.AreEqual(2, actual[2].SuffixList.Count);
            Assert.AreEqual("c", actual[2].SuffixList[0]);
            Assert.AreEqual("o", actual[2].SuffixList[1]);
            Assert.AreEqual("", actual[2].StartupParameter);

            Assert.AreEqual(null, actual[3].SuffixList);
            Assert.AreEqual("param", actual[3].StartupParameter);

            Assert.AreEqual(1, actual[4].SuffixList.Count);
            Assert.AreEqual("f", actual[4].SuffixList[0]);
            Assert.AreEqual("param", actual[4].StartupParameter);

            Assert.AreEqual(null, actual[5].SuffixList);
            Assert.AreEqual("param-f", actual[5].StartupParameter);
        }