public List <RegionArea> GetRegionAreas()
        {
            RegionAreas = new List <RegionArea>();

            if (!string.IsNullOrEmpty(Text))
            {
                bool searchingRegionStart = true;

                StringLineReader reader = new StringLineReader(Text);
                string           line;
                RegionArea       regionArea = null;
                int index = 0;

                while ((line = reader.ReadLine()) != null)
                {
                    line = line.Trim();

                    if (searchingRegionStart)
                    {
                        if (line.StartsWith("#region", StringComparison.InvariantCulture))
                        {
                            searchingRegionStart = false;
                            regionArea           = new RegionArea(this, index);
                            if (line.Length > 8)
                            {
                                regionArea.RegionName = line.Substring(8);
                            }
                        }
                    }
                    else
                    {
                        if (line.StartsWith("#endregion", StringComparison.InvariantCulture))
                        {
                            searchingRegionStart      = true;
                            regionArea.RegionEndIndex = reader.Position - 1;
                            RegionAreas.Add(regionArea);
                        }
                    }

                    index = reader.Position;
                }
            }

            return(RegionAreas);
        }
Пример #2
0
        public List<RegionArea> GetRegionAreas()
        {
            RegionAreas = new List<RegionArea>();

            if (!string.IsNullOrEmpty(Text))
            {
                bool searchingRegionStart = true;

                StringLineReader reader = new StringLineReader(Text);
                string line;
                RegionArea regionArea = null;
                int index = 0;

                while ((line = reader.ReadLine()) != null)
                {
                    line = line.Trim();

                    if (searchingRegionStart)
                    {
                        if (line.StartsWith("#region", StringComparison.InvariantCulture))
                        {
                            searchingRegionStart = false;
                            regionArea = new RegionArea(this, index);
                            if (line.Length > 8) regionArea.RegionName = line.Substring(8);
                        }
                    }
                    else
                    {
                        if (line.StartsWith("#endregion", StringComparison.InvariantCulture))
                        {
                            searchingRegionStart = true;
                            regionArea.RegionEndIndex = reader.Position - 1;
                            RegionAreas.Add(regionArea);
                        }
                    }

                    index = reader.Position;
                }
            }

            return RegionAreas;
        }
Пример #3
0
        public async Task Should_return_all_lines_then_null()
        {
            // Given
            var input  = "this\nthat\nthe other";
            var reader = new StringLineReader(input);
            var output = new List <string>();

            // When
            string current = null;

            do
            {
                current = await reader.GetNextLine();

                output.Add(current);
            } while (current != null);

            // Then
            output[0].ShouldEqual("this");
            output[1].ShouldEqual("that");
            output[2].ShouldEqual("the other");
            output[3].ShouldEqual(null);
        }
Пример #4
0
        private void btnOrderLines_Click(object sender, EventArgs e)
        {
            string clipboard = Clipboard.GetText();
            clipboard = clipboard.Trim();
            string[] lines = new StringLineReader(clipboard).ReadAllLines();
            Array.Sort(lines);
            string result = string.Join("\r\n", lines);

            tbDefaultText.Text = clipboard;
            tbNewText.Text = result;
        }