Ejemplo n.º 1
0
    public string GetIndentedText(string indent, TabSettings tabSettings)
    {
        LineSubdivider subdivider = new LineSubdivider(text, true);
        StringBuilder  builder    = new StringBuilder();
        bool           first      = true;

        foreach (string line in subdivider.GetLines())
        {
            if (!first)
            {
                builder.Append(indent);
            }
            first = false;
            if (tabSettings.useSpaces && line.StartsWith("\t"))
            {
                string tab   = tabSettings.Tab;
                int    count = 0;
                while (count < line.Length && line[count] == '\t')
                {
                    ++count;
                    builder.Append(tab);
                }
                builder.Append(line.Substring(count));
            }
            else
            {
                builder.Append(line);
            }
        }
        return(builder.ToString());
    }
Ejemplo n.º 2
0
 public void LineSubdivider_GetWithoutEndRN()
 {
     Assert.AreEqual("text", LineSubdivider.GetWithoutEndRN("text\r\n"));
     Assert.AreEqual("text", LineSubdivider.GetWithoutEndRN("text\n"));
     Assert.AreEqual("text", LineSubdivider.GetWithoutEndRN("text\r"));
     Assert.AreEqual("text", LineSubdivider.GetWithoutEndRN("text"));
     Assert.AreEqual("t", LineSubdivider.GetWithoutEndRN("t\r\n"));
     Assert.AreEqual("t", LineSubdivider.GetWithoutEndRN("t\n"));
     Assert.AreEqual("t", LineSubdivider.GetWithoutEndRN("t\r"));
     Assert.AreEqual("t", LineSubdivider.GetWithoutEndRN("t"));
     Assert.AreEqual("", LineSubdivider.GetWithoutEndRN("\r\n"));
     Assert.AreEqual("", LineSubdivider.GetWithoutEndRN("\n"));
     Assert.AreEqual("", LineSubdivider.GetWithoutEndRN("\r"));
     Assert.AreEqual("", LineSubdivider.GetWithoutEndRN(""));
 }
Ejemplo n.º 3
0
        public void LineSubdivider_WithoutLastEmpty()
        {
            Assert.AreEqual(2, new LineSubdivider("text\n", false).GetLinesCount());
            Assert.AreEqual(1, new LineSubdivider("text\n", true).GetLinesCount());

            Assert.AreEqual(2, new LineSubdivider("text\na", false).GetLinesCount());
            Assert.AreEqual(2, new LineSubdivider("text\na", true).GetLinesCount());

            Assert.AreEqual(2, new LineSubdivider("\n", false).GetLinesCount());
            {
                LineSubdivider subdivider = new LineSubdivider("\n", true);
                Assert.AreEqual(1, subdivider.GetLinesCount());
                Assert.AreEqual(1, subdivider.GetLinesCount());
            }
            {
                LineSubdivider subdivider = new LineSubdivider("text\ntext\n", true);
                Assert.AreEqual(2, subdivider.GetLinesCount());
                Assert.AreEqual(2, subdivider.GetLinesCount());
            }
        }
Ejemplo n.º 4
0
    public SnippetFile(string rawText, string fileName)
    {
        LineSubdivider subdivider = new LineSubdivider(rawText, true);
        StringBuilder  builder    = new StringBuilder();
        string         lastKey    = null;
        string         lastDesc   = null;
        int            index      = 0;

        foreach (string line in subdivider.GetLines())
        {
            if (line.StartsWith("#") || line.StartsWith("extensions"))
            {
                continue;
            }
            if (line.StartsWith("snippet ") || line.StartsWith("snippet\t"))
            {
                if (lastKey != null)
                {
                    _atoms.Add(new SnippetAtom(index++, lastKey, lastDesc, builder.ToString(), fileName));
                    builder.Length = 0;
                    lastKey        = null;
                    lastDesc       = null;
                }
                string key       = line.Substring("snippet ".Length).Trim();
                string desc      = "";
                int    descIndex = -1;
                for (int i = 0; i < key.Length; ++i)
                {
                    char c = key[i];
                    if (c == ' ' || c == '\t')
                    {
                        descIndex = i;
                        break;
                    }
                }
                if (descIndex != -1)
                {
                    desc = key.Substring(descIndex + 1);
                    key  = key.Substring(0, descIndex);
                }
                builder.Length = 0;
                if (!string.IsNullOrEmpty(key))
                {
                    lastKey        = key;
                    lastDesc       = desc;
                    builder.Length = 0;
                }
            }
            else
            {
                if (lastKey != null && line.StartsWith("\t"))
                {
                    builder.Append(line.Substring(1));
                }
            }
        }
        if (lastKey != null)
        {
            _atoms.Add(new SnippetAtom(index++, lastKey, lastDesc, builder.ToString(), fileName));
        }
    }