public bool TryCreateSession(ITextView textView, SnapshotPoint openingPoint, char openingBrace, char closingBrace, out IBraceCompletionSession session) { _threadingContext.ThrowIfNotOnUIThread(); var textSnapshot = openingPoint.Snapshot; var document = textSnapshot.GetOpenDocumentInCurrentContextWithChanges(); if (document != null) { var editorSessionFactory = document.GetLanguageService <IBraceCompletionServiceFactory>(); if (editorSessionFactory != null) { // Brace completion is (currently) not cancellable. var cancellationToken = CancellationToken.None; var editorSession = editorSessionFactory.TryGetServiceAsync(document, openingPoint, openingBrace, cancellationToken).WaitAndGetResult(cancellationToken); if (editorSession != null) { var undoHistory = _undoManager.GetTextBufferUndoManager(textView.TextBuffer).TextBufferUndoHistory; session = new BraceCompletionSession( textView, openingPoint.Snapshot.TextBuffer, openingPoint, openingBrace, closingBrace, undoHistory, _editorOperationsFactoryService, editorSession, _globalOptions, _threadingContext); return(true); } } } session = null; return(false); }
public bool TryCreateSession(ITextView textView, SnapshotPoint openingPoint, char openingBrace, char closingBrace, out IBraceCompletionSession session) { this.AssertIsForeground(); var textSnapshot = openingPoint.Snapshot; var document = textSnapshot.GetOpenDocumentInCurrentContextWithChanges(); if (document != null) { var editorSessionFactory = document.GetLanguageService <IEditorBraceCompletionSessionFactory>(); if (editorSessionFactory != null) { // Brace completion is (currently) not cancellable. var cancellationToken = CancellationToken.None; var editorSession = editorSessionFactory.TryCreateSession(document, openingPoint, openingBrace, cancellationToken); if (editorSession != null) { var undoHistory = _undoManager.GetTextBufferUndoManager(textView.TextBuffer).TextBufferUndoHistory; session = new BraceCompletionSession( textView, openingPoint.Snapshot.TextBuffer, openingPoint, openingBrace, closingBrace, undoHistory, _editorOperationsFactoryService, editorSession); return(true); } } } session = null; return(false); }
public bool TryCreateSession(ITextView textView, SnapshotPoint openingPoint, char openingBrace, char closingBrace, out IBraceCompletionSession session) { this.AssertIsForeground(); var textSnapshot = openingPoint.Snapshot; var document = textSnapshot.GetOpenDocumentInCurrentContextWithChanges(); if (document != null) { var editorSessionFactory = document.GetLanguageService<IEditorBraceCompletionSessionFactory>(); if (editorSessionFactory != null) { // Brace completion is (currently) not cancellable. var cancellationToken = CancellationToken.None; var editorSession = editorSessionFactory.TryCreateSession(document, openingPoint, openingBrace, cancellationToken); if (editorSession != null) { var undoHistory = _undoManager.GetTextBufferUndoManager(textView.TextBuffer).TextBufferUndoHistory; session = new BraceCompletionSession( textView, openingPoint.Snapshot.TextBuffer, openingPoint, openingBrace, closingBrace, undoHistory, _editorOperationsFactoryService, editorSession); return true; } } } session = null; return false; }