/// <summary> /// ファイルを読み込み画面状態を初期化する /// </summary> public void loadOption() { if (m_krkrType == FileType.KrkrType.Kag) { //カラー設定 KagColorType type = new KagColorType(); IHighlightingStrategy hs = HighlightingManager.Manager.FindHighlighter("KAG"); loadBaseTypeColor(type, hs); loadKagTypeColor(type, (DefaultHighlightingStrategy)hs); colorPropertyGrid.SelectedObject = type; //タブ表示切り替え optionTabControl.TabPages.Clear(); optionTabControl.TabPages.Add(colorTabPage); optionTabControl.TabPages.Add(fontTabPage); optionTabControl.TabPages.Add(showTabPage); optionTabControl.TabPages.Add(actionTabPage); optionTabControl.TabPages.Add(completeTabPage); optionTabControl.TabPages.Add(kag1TabPage); optionTabControl.TabPages.Add(kag2TabPage); optionTabControl.TabPages.Add(kagex1TabPage); } else if (m_krkrType == FileType.KrkrType.Tjs) { TjsColorType type = new TjsColorType(); IHighlightingStrategy hs = HighlightingManager.Manager.FindHighlighter("TJS2"); loadBaseTypeColor(type, hs); loadTjsTypeColor(type, (DefaultHighlightingStrategy)hs); colorPropertyGrid.SelectedObject = type; //タブ表示切り替え optionTabControl.TabPages.Clear(); optionTabControl.TabPages.Add(colorTabPage); optionTabControl.TabPages.Add(fontTabPage); optionTabControl.TabPages.Add(showTabPage); optionTabControl.TabPages.Add(actionTabPage); //optionTabControl.TabPages.Add(completeTabPage); } else { BaseColorType type = new BaseColorType(); IHighlightingStrategy hs = HighlightingManager.Manager.FindHighlighter("Default"); loadBaseTypeColor(type, hs); colorPropertyGrid.SelectedObject = type; //タブ表示切り替え optionTabControl.TabPages.Clear(); optionTabControl.TabPages.Add(colorTabPage); optionTabControl.TabPages.Add(fontTabPage); optionTabControl.TabPages.Add(showTabPage); optionTabControl.TabPages.Add(actionTabPage); } //エディタ設定 EditorOption editorOption = GlobalStatus.EditorManager.GetEditorOption(m_krkrType); loadEditorOption(editorOption); }
/// <summary> /// KAG3独自のカラー設定部分を読み込む /// </summary> /// <param name="type">設定するカラータイプ</param> /// <param name="hs">カラー情報</param> private void loadKagTypeColor(KagColorType type, DefaultHighlightingStrategy hs) { HighlightRuleSet rule; ArrayList spanList; //デフォルトルールセットから取得する rule = hs.GetRuleSet(null); spanList = rule.Spans; foreach (Span span in spanList) { switch (span.Name) { case "LineComment": type.Comment = span.Color.Color; break; case "TJS2Tag": type.TjsScript = span.Color.Color; break; case "KAG3Tag": type.TagName = span.Color.Color; break; case "KAG3Label": type.Label = span.Color.Color; break; } } //Kag3Tagルールセットから取得する rule = hs.FindHighlightRuleSet("KAG3TagRuleSet"); spanList = rule.Spans; foreach (Span span in spanList) { switch (span.Name) { case "String": type.AttributeValue = span.Color.Color; break; } } //プレマークリストから属性名カラーを取得する List <PrevMarker> pmList = rule.PrevMarkList; if (pmList.Count > 0) { type.AttributeName = pmList[0].Color.Color; } }
/// <summary> /// KAGファイルのデフォルトカラーオブジェクトを取得する /// </summary> /// <param name="deftype">ベースとなるカラータイプ</param> /// <returns>カラーオブジェクト</returns> private static KagColorType getDefaultKagColor(DefaultColorType deftype) { BaseColorType baseType = getDefaultColor(deftype); KagColorType type = new KagColorType(); type.WindowFront = baseType.WindowFront; type.WindowBack = baseType.WindowBack; type.SelectTextFront = baseType.SelectTextFront; type.SelectTextBack = baseType.SelectTextBack; type.VRuler = baseType.VRuler; type.InvalidLines = baseType.InvalidLines; type.CaretMarker = baseType.CaretMarker; type.LineNumbersFront = baseType.LineNumbersFront; type.LineNumbersBack = baseType.LineNumbersBack; type.FoldLineFront = baseType.FoldLineFront; type.FoldLineBack = baseType.FoldLineBack; type.FoldMarkerFront = baseType.FoldMarkerFront; type.FoldMarkerBack = baseType.FoldMarkerBack; type.SelectFoldLineFront = baseType.SelectFoldLineFront; type.SelectFoldLineBack = baseType.SelectFoldLineBack; type.EolMarkers = baseType.EolMarkers; type.SpaceMakers = baseType.SpaceMakers; type.TabMarkers = baseType.TabMarkers; type.Digits = baseType.Digits; switch (deftype) { case DefaultColorType.Black: type.Comment = Color.FromArgb(0x64, 0xB1, 0xFF); type.TjsScript = Color.FromArgb(0xDD, 0xDD, 0xDD); type.TagName = Color.FromArgb(0xFF, 0x80, 0x80); type.Label = Color.FromArgb(0x80, 0xFF, 0x00); type.AttributeName = Color.FromArgb(0xC0, 0xC0, 0x40); type.AttributeValue = Color.FromArgb(0x00, 0xA4, 0x5F); break; case DefaultColorType.White: default: type.Comment = Color.DarkGreen; type.TjsScript = SystemColors.WindowText; type.TagName = Color.DarkMagenta; type.Label = Color.Green; type.AttributeName = Color.Red; type.AttributeValue = Color.Blue; break; } return(type); }
/// <summary> /// KAG強調定義ファイルを作成する /// </summary> /// <param name="fileName"></param> private static string createKagXshd(KagColorType colorType) { string text = ""; text += String.Format("<?xml version=\"1.0\"?>\n"); text += String.Format("\n"); text += String.Format("<!-- syntaxdefinition for KAG by PORING SOFT -->\n"); text += String.Format("<SyntaxDefinition name=\"KAG\" extensions=\".ks\">\n"); //共通部の色設定 text += String.Format(" <Environment>\n"); text += String.Format(" <Default color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.WindowFront), getColorName(colorType.WindowBack)); text += String.Format(" <Selection color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.SelectTextFront), getColorName(colorType.SelectTextBack)); text += String.Format(" <VRuler color=\"{0}\" />\n", getColorName(colorType.VRuler)); text += String.Format(" <InvalidLines color=\"{0}\" />\n", getColorName(colorType.InvalidLines)); text += String.Format(" <CaretMarker color=\"{0}\" />\n", getColorName(colorType.CaretMarker)); text += String.Format(" \n"); text += String.Format(" <LineNumbers color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.LineNumbersFront), getColorName(colorType.LineNumbersBack)); text += String.Format(" \n"); text += String.Format(" <FoldLine color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.FoldLineFront), getColorName(colorType.FoldLineBack)); text += String.Format(" <FoldMarker color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.FoldMarkerFront), getColorName(colorType.FoldMarkerBack)); text += String.Format(" <SelectedFoldLine color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.SelectFoldLineFront), getColorName(colorType.SelectFoldLineBack)); text += String.Format(" \n"); text += String.Format(" <EOLMarkers color=\"{0}\" />\n", getColorName(colorType.EolMarkers)); text += String.Format(" <SpaceMarkers color=\"{0}\" />\n", getColorName(colorType.SpaceMakers)); text += String.Format(" <TabMarkers color=\"{0}\" />\n", getColorName(colorType.TabMarkers)); text += String.Format(" </Environment>\n"); text += String.Format(" \n"); //プロパティの設定 text += String.Format(" <Properties>\n"); text += String.Format(" <Property name=\"LineComment\" value=\";\"/>\n"); text += String.Format(" </Properties>\n"); text += String.Format(" \n"); //数値の色設定 text += String.Format(" <Digits name=\"Digits\" bold=\"false\" italic=\"false\" color=\"{0}\" />\n", getColorName(colorType.Digits)); text += String.Format(" \n"); //KAG3の色設定 text += String.Format(" <RuleSets>\n"); text += String.Format(" <RuleSet ignorecase=\"true\" noescapesequences=\"true\">\n"); text += String.Format(" <Delimiters>=[]@ </Delimiters>\n"); text += String.Format(" \n"); text += String.Format(" <Span name=\"LineComment\" bold=\"false\" italic=\"false\" color=\"{0}\" stopateol=\"true\">\n", getColorName(colorType.Comment)); text += String.Format(" <Begin>@^;</Begin>\n"); text += String.Format(" </Span>\n"); text += String.Format(" \n"); text += String.Format(" <Span name=\"TJS2Tag\" rule=\"TJS2TagRuleSet\" bold=\"false\" italic=\"false\" color=\"{0}\" stopateol=\"false\">\n", getColorName(colorType.TjsScript)); text += String.Format(" <Begin>[iscript]</Begin>\n"); text += String.Format(" <End>[endscript]</End>\n"); text += String.Format(" </Span>\n"); text += String.Format(" \n"); text += String.Format(" <Span name=\"TJS2Command\" rule=\"TJS2TagRuleSet\" bold=\"false\" italic=\"false\" color=\"{0}\" stopateol=\"false\">\n", getColorName(colorType.TjsScript)); text += String.Format(" <Begin>@@iscript</Begin>\n"); text += String.Format(" <End>@@endscript</End>\n"); text += String.Format(" </Span>\n"); text += String.Format(" \n"); text += String.Format(" <Span name=\"KAG3Tag\" rule=\"KAG3TagRuleSet\" bold=\"false\" italic=\"false\" color=\"{0}\" stopateol=\"true\">\n", getColorName(colorType.TagName)); text += String.Format(" <Begin>[</Begin>\n"); text += String.Format(" <End>]</End>\n"); text += String.Format(" </Span>\n"); text += String.Format(" \n"); text += String.Format(" <Span name=\"KAG3Command\" rule=\"KAG3TagRuleSet\" bold=\"false\" italic=\"false\" color=\"{0}\" stopateol=\"true\">\n", getColorName(colorType.TagName)); text += String.Format(" <Begin>@^@@</Begin>\n"); text += String.Format(" </Span>\n"); text += String.Format(" \n"); text += String.Format(" <Span name=\"KAG3Label\" bold=\"false\" italic=\"false\" color=\"{0}\" stopateol=\"true\">\n", getColorName(colorType.Label)); text += String.Format(" <Begin>@^*</Begin>\n"); text += String.Format(" <End>|</End>\n"); text += String.Format(" </Span>\n"); text += String.Format(" \n"); text += String.Format(" </RuleSet>\n"); text += String.Format(" \n"); text += String.Format(" <RuleSet name=\"TJS2TagRuleSet\" reference=\"TJS2\" />\n"); text += String.Format(" \n"); text += String.Format(" <RuleSet name=\"KAG3TagRuleSet\" ignorecase=\"false\" noescapesequences=\"true\">\n"); text += String.Format(" <Delimiters>=</Delimiters>\n"); text += String.Format(" \n"); text += String.Format(" <Span name=\"String\" bold=\"false\" italic=\"false\" color=\"{0}\" stopateol=\"true\">\n", getColorName(colorType.AttributeValue)); text += String.Format(" <Begin>"</Begin>\n"); text += String.Format(" <End>"</End>\n"); text += String.Format(" </Span>\n"); text += String.Format(" \n"); text += String.Format(" <Span name=\"Char\" bold=\"false\" italic=\"false\" color=\"{0}\" stopateol=\"true\">\n", getColorName(colorType.AttributeValue)); text += String.Format(" <Begin>'</Begin>\n"); text += String.Format(" <End>'</End>\n"); text += String.Format(" </Span>\n"); text += String.Format(" \n"); text += String.Format(" <MarkPrevious bold=\"false\" italic=\"false\" color=\"{0}\">=</MarkPrevious>\n", getColorName(colorType.AttributeName)); text += String.Format(" \n"); text += String.Format(" <KeyWords name=\"Assignment\" bold=\"false\" italic=\"false\" color=\"{0}\">\n", getColorName(colorType.AttributeValue)); text += String.Format(" <Key word=\"=\" />\n"); text += String.Format(" </KeyWords>\n"); text += String.Format(" </RuleSet>\n"); text += String.Format(" </RuleSets>\n"); text += String.Format("</SyntaxDefinition>\n"); text += String.Format("\n"); return(text); }