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); } }
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 }
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; }