コミットメタ情報

リビジョン1531505f959ca54c3d01b04bf495e0bc8b0dae6a (tree)
日時2019-02-12 09:47:00
作者test <test@yaho...>
コミッターtest

ログメッセージ

ビジネスロジックとモデルの操作は分離したほうがいい

変更サマリ

差分

--- a/UWP/FooEditor.UWP/Models/SnipeetModel.cs
+++ b/UWP/FooEditor.UWP/Models/SnipeetModel.cs
@@ -29,6 +29,15 @@ namespace FooEditor.UWP.Models
2929 string lineString = doc.LayoutLines[lineNumber];
3030 int tabNum = lineString.Count((c) => { return c == '\t'; });
3131
32+ string insertText = this.GetParsedSnipped(this.Data, docModel.Encode, tabNum);
33+
34+ int caretIndex = doc.LayoutLines.GetIndexFromTextPoint(docModel.Document.CaretPostion);
35+ doc.Insert(caretIndex, insertText.ToString());
36+ doc.RequestRedraw();
37+ }
38+
39+ public string GetParsedSnipped(string data,Encoding enc,int tabNum)
40+ {
3241 //インテンドの数を計算する
3342 StringBuilder tabs = new StringBuilder();
3443 for (int i = 0; i < tabNum; i++)
@@ -37,17 +46,15 @@ namespace FooEditor.UWP.Models
3746 //トークンを解析する
3847 StringBuilder insertText = new StringBuilder();
3948 string[] snipetLines = this.Data.Split(new string[] { "\\n" }, StringSplitOptions.RemoveEmptyEntries);
40- for(int i = 0; i< snipetLines.Length; i++)
49+ for (int i = 0; i < snipetLines.Length; i++)
4150 {
4251 string[] oldValues = new string[] { "${encode}", "\\t", "\\i" };
43- string[] newValues = new string[] { docModel.Encode.WebName, "\t", i ==0 ? "" : tabs.ToString() }; //最初の行はインデンド済みなので空文字を返す
52+ string[] newValues = new string[] { enc.WebName, "\t", i == 0 ? "" : tabs.ToString() }; //最初の行はインデンド済みなので空文字を返す
4453 insertText.Append(Util.Replace(snipetLines[i], oldValues, newValues));
4554 insertText.Append(Document.NewLine);
4655 }
4756
48- int caretIndex = doc.LayoutLines.GetIndexFromTextPoint(docModel.Document.CaretPostion);
49- doc.Insert(caretIndex, insertText.ToString());
50- doc.RequestRedraw();
57+ return insertText.ToString();
5158 }
5259 }
5360
旧リポジトリブラウザで表示