Ejemplo n.º 1
0
        public UCText( )
        {
            InitializeComponent( );

            ChangeEventHelper = new ChangeEventHelper(this.rtb);
            UndoRedoHelper    = new UndoRedoHelper(this.rtb);

            WhitespaceAdorner          = new WhitespaceAdorner(rtb, ChangeEventHelper);
            LocalUnderliningAdorner    = new UnderliningAdorner(rtb);
            ExternalUnderliningAdorner = new UnderliningAdorner(rtb);

            NormalStyleInfo = new StyleInfo("TextNormal");

            HighlightStyleInfos = new[]
            {
                new StyleInfo("MatchHighlight_0"),
                new StyleInfo("MatchHighlight_1"),
                new StyleInfo("MatchHighlight_2")
            };


            RecolouringLoop         = new ResumableLoop(RecolouringThreadProc, 333, 555);
            LocalUnderliningLoop    = new ResumableLoop(LocalUnderliningThreadProc, 222, 444);
            ExternalUnderliningLoop = new ResumableLoop(ExternalUnderliningThreadProc, 333, 555);


            pnlDebug.Visibility = Visibility.Collapsed;
#if !DEBUG
            pnlDebug.Visibility = Visibility.Collapsed;
#endif
            //WhitespaceAdorner.IsDbgDisabled = true;
            //LocalUnderliningAdorner.IsDbgDisabled = true;
            //ExternalUnderliningAdorner.IsDbgDisabled = true;
        }
Ejemplo n.º 2
0
        public UCMain( )
        {
            InitializeComponent( );

            RegexEngines = new[]
            {
                DefaultRegexEngine,
                new DotNetCoreRegexEngineNs.DotNetCoreRegexEngine( ),
                new StdRegexEngineNs.StdRegexEngine( ),
                new BoostRegexEngineNs.BoostRegexEngine( ),
                new Pcre2RegexEngineNs.Pcre2RegexEngine(),
                new Re2RegexEngineNs.Re2RegexEngine(),
                new OnigurumaRegexEngineNs.OnigurumaRegexEngine(),
                new IcuRegexEngineNs.IcuRegexEngine(),
                new SubRegRegexEngineNs.SubRegRegexEngine(),
                new PerlRegexEngineNs.PerlRegexEngine(),
                new PythonRegexEngineNs.PythonRegexEngine(),
                new RustRegexEngineNs.RustRegexEngine(),
                new DRegexEngineNs.DRegexEngine(),
                new WebView2RegexEngineNs.WebView2RegexEngine(),
            };

            btnNewTab.Visibility    = Visibility.Hidden;
            lblTextInfo.Visibility  = Visibility.Collapsed;
            pnlShowAll.Visibility   = Visibility.Collapsed;
            pnlShowFirst.Visibility = Visibility.Collapsed;
            lblWarnings.Inlines.Remove(lblWhitespaceWarning1);
            lblWarnings.Inlines.Remove(lblWhitespaceWarning2);

            FindMatchesLoop             = new ResumableLoop(FindMatchesThreadProc, 333, 555);
            UpdateWhitespaceWarningLoop = new ResumableLoop(UpdateWhitespaceWarningThreadProc, 444, 777);
            ShowTextInfoLoop            = new ResumableLoop(ShowTextInfoThreadProc, 333, 555);

            UpdateWhitespaceWarningLoop.Priority = ThreadPriority.Lowest;
            ShowTextInfoLoop.Priority            = ThreadPriority.Lowest;

            foreach (var eng in RegexEngines)
            {
                eng.OptionsChanged += Engine_OptionsChanged;

                var cbxi = new ComboBoxItem
                {
                    Tag        = eng.Id,
                    Content    = eng.Name + " " + (eng.EngineVersion ?? "unknown version"),
                    IsSelected = eng.Id == DefaultRegexEngine.Id
                };

                cbxEngine.Items.Add(cbxi);
            }

            // because 'Unloaded' event is not always called
            // (https://stackoverflow.com/questions/14479038/how-to-fire-unload-event-of-usercontrol-in-a-wpf-window)

            Dispatcher.ShutdownStarted += HandleShutdownStarted;
        }
Ejemplo n.º 3
0
        public MainWindow( )
        {
            InitializeComponent( );

            var MIN_INTERVAL = TimeSpan.FromSeconds(5);
            var interval     = Properties.Settings.Default.AutoSaveInterval;

            if (interval < MIN_INTERVAL)
            {
                interval = MIN_INTERVAL;
            }

            AutoSaveLoop = new ResumableLoop(AutoSaveThreadProc, (int)interval.TotalMilliseconds);
        }
Ejemplo n.º 4
0
        public UCMatches( )
        {
            InitializeComponent( );

            LocalUnderliningAdorner    = new UnderliningAdorner(rtbMatches);
            ExternalUnderliningAdorner = new UnderliningAdorner(rtbMatches);

            ChangeEventHelper = new ChangeEventHelper(rtbMatches);

            HighlightStyleInfos = new[]
            {
                new StyleInfo("MatchHighlight_0"),
                new StyleInfo("MatchHighlight_1"),
                new StyleInfo("MatchHighlight_2")
            };

            HighlightLightStyleInfos = new[]
            {
                new StyleInfo("MatchHighlight_0_Light"),
                new StyleInfo("MatchHighlight_1_Light"),
                new StyleInfo("MatchHighlight_2_Light")
            };

            MatchNormalStyleInfo       = new StyleInfo("MatchNormal");
            MatchValueStyleInfo        = new StyleInfo("MatchValue");
            MatchValueSpecialStyleInfo = new StyleInfo("MatchValueSpecial");
            LocationStyleInfo          = new StyleInfo("MatchLocation");
            GroupNameStyleInfo         = new StyleInfo("MatchGroupName");
            GroupSiblingValueStyleInfo = new StyleInfo("MatchGroupSiblingValue");
            GroupValueStyleInfo        = new StyleInfo("MatchGroupValue");
            GroupFailedStyleInfo       = new StyleInfo("MatchGroupFailed");


            ShowMatchesLoop         = new ResumableLoop(ShowMatchesThreadProc, 333, 555);
            LocalUnderliningLoop    = new ResumableLoop(LocalUnderliningThreadProc, 222, 444);
            ExternalUnderliningLoop = new ResumableLoop(ExternalUnderliningThreadProc, 333, 555);


            pnlDebug.Visibility = Visibility.Collapsed;
#if !DEBUG
            pnlDebug.Visibility = Visibility.Collapsed;
#endif
            //LocalUnderliningAdorner.IsDbgDisabled = true;
            //ExternalUnderliningAdorner.IsDbgDisabled = true;
        }
Ejemplo n.º 5
0
        }                                                 // (disable this adorner for debugging purposes)


        public WhitespaceAdorner(MyRichTextBox rtb, ChangeEventHelper ceh) : base(rtb)
        {
            ChangeEventHelper = ceh;
            Debug.Assert(ChangeEventHelper != null);

            WsBrush.Freeze( );
            TabPen.Freeze( );
            EolPen.Freeze( );
            EofPen.Freeze( );
            EofBrush.Freeze( );

            IsHitTestVisible = false;

            Rtb.TextChanged += Rtb_TextChanged;
            Rtb.AddHandler(ScrollViewer.ScrollChangedEvent, new RoutedEventHandler(Rtb_ScrollChanged), true);

            Loop = new ResumableLoop(ThreadProc, 33, 33, 444);
        }
Ejemplo n.º 6
0
        public UCPattern( )
        {
            InitializeComponent( );

            ChangeEventHelper = new ChangeEventHelper(this.rtb);
            UndoRedoHelper    = new UndoRedoHelper(this.rtb);

            WhitespaceAdorner = new WhitespaceAdorner(rtb, ChangeEventHelper);

            PatternNormalStyleInfo                    = new StyleInfo("PatternNormal");
            PatternParaHighlightStyleInfo             = new StyleInfo("PatternParaHighlight");
            PatternGroupNameStyleInfo                 = new StyleInfo("PatternGroupName");
            PatternEscapeStyleInfo                    = new StyleInfo("PatternEscape");
            PatternCharGroupBracketHighlightStyleInfo = new StyleInfo("PatternCharGroupHighlight");
            PatternRangeCurlyBraceHighlightStyleInfo  = PatternCharGroupBracketHighlightStyleInfo;
            PatternCommentStyleInfo                   = new StyleInfo("PatternComment");

            RecolouringLoop  = new ResumableLoop(RecolouringThreadProc, 222, 444);
            HighlightingLoop = new ResumableLoop(HighlightingThreadProc, 111, 444);

            //WhitespaceAdorner.IsDbgDisabled = true;
        }