diff --git a/CSTNet.Tests/v2.cst b/CSTNet.Tests/v2.cst index 773bc88..c2fb4d6 100644 --- a/CSTNet.Tests/v2.cst +++ b/CSTNet.Tests/v2.cst @@ -1,4 +1,4 @@ Singleline^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies nulla eu tortor mattis, dictum posuere lacus ornare. Maecenas a massa in ligula finibus luctus eu vitae nibh. Proin imperdiet dapibus mauris quis placerat.^ Multiline ^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc gravida nunc non justo pretium consectetur. Sed tempus libero ac ligula aliquam elementum. Duis vitae interdum leo. Sed semper nulla %1 a lectus dictum dictum. -Quisque vehicula, nisi ut scelerisque sodales, nisi ipsum sodales ipsum, in rutrum tellus lacus sed nibh. Etiam mauris velit, elementum sed placerat et, elementum et tellus. Duis vitae elit fermentum, viverra lorem in, lobortis elit.^ \ No newline at end of file +Quisque vehicula, nisi ut scelerisque sodales, nisi ipsum sodales ipsum, in rutrum tellus lacus sed nibh. Etiam mauris velit, elementum sed placerat et, elementum et tellus. Duis vitae elit fermentum, viverra lorem in, lobortis elit^ \ No newline at end of file diff --git a/notebooks/cst.ipynb b/notebooks/cst.ipynb index 577aa7d..6d57ebf 100644 --- a/notebooks/cst.ipynb +++ b/notebooks/cst.ipynb @@ -63,46 +63,36 @@ " /// This stage ensures there are no crashes during parsing.\n", " static IEnumerable NormalizeEntries(string content)\n", " {\n", - "\n", - " /* \n", - " I tried putting the end carets with the different\n", - " line endings in with the split function but it didn't work \n", - " */\n", - " if (!content.Contains($\"{CARET}{Environment.NewLine}\"))\n", + " if (!content.Contains(Environment.NewLine))\n", " {\n", - " if (content.Contains($\"{CARET}{_lf}\"))\n", - " content = content.Replace($\"{CARET}{_lf}\",\n", - " $\"{CARET}{Environment.NewLine}\");\n", + " if (content.Contains(_lf))\n", + " content = content.Replace(_lf, Environment.NewLine);\n", "\n", - " if (content.Contains($\"{CARET}{_cr}\"))\n", - " content = content.Replace($\"{CARET}{_cr}\",\n", - " $\"{CARET}{Environment.NewLine}\");\n", + " if (content.Contains(_cr))\n", + " content = content.Replace(_cr, Environment.NewLine);\n", "\n", - " if (content.Contains($\"{CARET}{_crlf}\"))\n", - " content = content.Replace($\"{CARET}{_crlf}\",\n", - " $\"{CARET}{Environment.NewLine}\");\n", + " if (content.Contains(_crlf))\n", + " content = content.Replace(_crlf, Environment.NewLine);\n", "\n", - " if (content.Contains($\"{CARET}{_ls}\"))\n", - " content = content.Replace($\"{CARET}{_ls}\",\n", - " $\"{CARET}{Environment.NewLine}\");\n", + " if (content.Contains(_ls))\n", + " content = content.Replace(_ls, Environment.NewLine);\n", " }\n", "\n", - "\n", - " var entries = content.Split(new[] { $\"{CARET}{Environment.NewLine}\" },\n", + " var lines = content.Split(new[] { $\"{CARET}{Environment.NewLine}\" },\n", " StringSplitOptions.RemoveEmptyEntries);\n", - " var newContent = new List();\n", + " var entries = new List();\n", "\n", - " foreach (var entry in entries)\n", + " foreach (var line in lines)\n", " {\n", " // Skip comments\n", - " if (entry.StartsWith(@\"//\") || entry.StartsWith(\"#\") ||\n", - " entry.StartsWith(\"/*\") || entry.EndsWith(\"*/\"))\n", + " if (line.StartsWith(\"//\") || line.StartsWith(\"#\") ||\n", + " line.StartsWith(\"/*\") || line.EndsWith(\"*/\"))\n", " continue;\n", "\n", - " newContent.Add(entry);\n", + " entries.Add(line);\n", " }\n", "\n", - " return newContent;\n", + " return entries;\n", " }\n", "\n", " static string GetEntry(IEnumerable entries, string key)\n", @@ -110,32 +100,18 @@ " // Search through list\n", " foreach (var entry in entries)\n", " {\n", - " // Locate index, trim carets and return translation\n", + " // If the line doesn't start with the key, keep searching.\n", " if (!entry.StartsWith(key))\n", " continue;\n", "\n", + " // Locate index, trim carets and return translation.\n", " var startIndex = entry.IndexOf(CARET);\n", " var line = entry.Substring(startIndex);\n", "\n", - " if (!line.Contains(Environment.NewLine))\n", - " {\n", - " if (line.Contains(_lf))\n", - " line = line.Replace(_lf, Environment.NewLine);\n", - "\n", - " if (line.Contains(_cr))\n", - " line = line.Replace(_cr, Environment.NewLine);\n", - "\n", - " if (line.Contains(_crlf))\n", - " line = line.Replace(_crlf, Environment.NewLine);\n", - "\n", - " if (line.Contains(_ls))\n", - " line = line.Replace(_ls, Environment.NewLine);\n", - " }\n", - "\n", " return line.TrimStart(CARET).TrimEnd(CARET);\n", " }\n", "\n", - " return \"[ENTRY NOT FOUND]\";\n", + " return \"***MISSING***\";\n", " }\n", "}" ], @@ -206,7 +182,7 @@ { "output_type": "execute_result", "data": { - "text/plain": "Multiline v2:\r\n[ENTRY NOT FOUND]\r\n" + "text/plain": "Multiline v2:\r\n***MISSING***\r\n" }, "execution_count": 1, "metadata": {} diff --git a/notebooks/data/v2.cst b/notebooks/data/v2.cst index 2949b37..c2fb4d6 100644 --- a/notebooks/data/v2.cst +++ b/notebooks/data/v2.cst @@ -1,6 +1,4 @@ Singleline^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies nulla eu tortor mattis, dictum posuere lacus ornare. Maecenas a massa in ligula finibus luctus eu vitae nibh. Proin imperdiet dapibus mauris quis placerat.^ -/* this is a -test comment */ -Multiline^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc gravida nunc non justo pretium consectetur. Sed tempus libero ac ligula aliquam elementum. Duis vitae interdum leo. Sed semper nulla %1 a lectus dictum dictum. Ut mattis eu tortor in bibendum. Integer mattis tincidunt aliquet. Vestibulum ante ipsum primis in faucibus orci %2 luctus et ultrices posuere cubilia Curae; Fusce quis orci nisl. +Multiline ^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc gravida nunc non justo pretium consectetur. Sed tempus libero ac ligula aliquam elementum. Duis vitae interdum leo. Sed semper nulla %1 a lectus dictum dictum. -Quisque vehicula, nisi ut scelerisque sodales, nisi ipsum sodales ipsum, in rutrum tellus lacus sed nibh. Etiam mauris velit, elementum sed placerat et, elementum et tellus. Duis vitae elit fermentum, viverra lorem in, lobortis elit. Maecenas eget nibh et lectus auctor dignissim.^ \ No newline at end of file +Quisque vehicula, nisi ut scelerisque sodales, nisi ipsum sodales ipsum, in rutrum tellus lacus sed nibh. Etiam mauris velit, elementum sed placerat et, elementum et tellus. Duis vitae elit fermentum, viverra lorem in, lobortis elit^ \ No newline at end of file