Example #1
0
        private void OnContextLanguageChanged(EditorSegment segment)
        {
            var completion = AutoComplete.GetCompletion(segment.SyntaxName);

            Engine.Reset(segment, completion);

            if (completion == null)
            {
                ShowNoCompletionSettings();
            }
            else if (ActiveCompletion == null || !ActiveCompletion.IsSameLanguageAs(completion))
            {
                ShowCompletionSettings(completion, segment.SyntaxName);
            }
        }
Example #2
0
        private void CaretOffsetChanged(object sender, EventArgs e)
        {
            HighlightBracketsIfNextToCaret();

            #region CurrentLanguageName changed

            EditorSegment segment;
            var oldSegment = ActiveLanguageSegment;
            var segments = GetCurrentSegments();

            if (segments.Where(s => s.IsSyntax).Count() == 0)
            {
                ActiveLanguageSegment = new EditorSegment(this);
            }
            else
            {
                segment = segments.FirstOrDefault(s => s.IsSyntax);

                if (segment != null && !segment.Equals(oldSegment))
                {
                    segment = GetOverlappingSegment(segment.Name, segment.Offset);

                    ActiveLanguageSegment = segment;
                }
            }

            if (oldSegment != null && !oldSegment.Equals(ActiveLanguageSegment))
                Controller.Current.ActiveSegmentChanged(ActiveLanguageSegment);

            #endregion
        }
Example #3
0
        public void Reset(EditorSegment segment, AutoComplete completion)
        {
            Segment = segment;

            if (LanguageCompletion != null && !LanguageCompletion.IsSameLanguageAs(completion))
            {
                GlobalIdentifiers = new List<IdentifierMatch>();
                AvailableOptions = new List<AutoCompleteItem>();
                TokensBeforeCaret = new List<string>();
            }

            LanguageCompletion = completion;
        }