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;
        }
Exemple #2
0
        private void CreateFoldingStrategy(string filePath)
        {
            GherkinFoldingStrategy = null;
            XmlFoldingStrategy     = null;

            if (GherkinUtil.IsFeatureFile(filePath))
            {
                GherkinFoldingStrategy = new GherkinFoldingStrategy();
            }
            else if (IsXMLFile(filePath))
            {
                XmlFoldingStrategy = new XmlFoldingStrategy();
            }
        }
Exemple #3
0
        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));
        }