public EditorView(IApplicationState state) { InitializeComponent(); _state = state; _editor = new TextEditor(); _editor.Name = "txtEditor"; _editor.IsReadOnly = true; _editor.Options.EnableEmailHyperlinks = false; _editor.Options.EnableHyperlinks = false; _editor.TextChanged += OnTextChanged; ehoEditor.Child = _editor; // folding var foldingManager = FoldingManager.Install(_editor.TextArea); var foldingStrategy = new GherkinFoldingStrategy(); Timer foldingTimer = new Timer { Interval = TimeSpan.FromSeconds(2).Seconds }; foldingTimer.Tick += (s, e) => foldingStrategy.UpdateFoldings(foldingManager, _editor.Document); foldingTimer.Start(); // code completion var codeCompletionStrategy = new GherkinCodeCompletionStrategy(_editor, state); state.Project.CurrentFeatureChanged += OnCurrentFeatureChanged; state.Settings.EditorSettingsChanged += OnEditorSettingsChanged; }
private void CreateFoldingStrategy(string filePath) { GherkinFoldingStrategy = null; XmlFoldingStrategy = null; if (GherkinUtil.IsFeatureFile(filePath)) { GherkinFoldingStrategy = new GherkinFoldingStrategy(); } else if (IsXMLFile(filePath)) { XmlFoldingStrategy = new XmlFoldingStrategy(); } }
public List <NewFolding> UpdateFeatureFoldings(bool isCloseTablesFolding, bool isCloseScenarioFolding, bool refresh) { if (!IsCurrentFoldingFeature) { return(new List <NewFolding>()); } List <FoldingManager> managers = new List <FoldingManager>(); if (MainGherkinEditor.FoldingManager != null) { managers.Add(MainGherkinEditor.FoldingManager); } if (SubGherkinEditor.FoldingManager != null) { managers.Add(SubGherkinEditor.FoldingManager); } if (ViewerGherkinEditor.FoldingManager != null) { managers.Add(ViewerGherkinEditor.FoldingManager); } return(GherkinFoldingStrategy.UpdateFoldings(managers, Document, isCloseTablesFolding, isCloseScenarioFolding, refresh)); }