public async Task <object> UpdateToolTipAsync(int offset) { if (offset != -1 && ShellViewModel.Instance.CurrentPerspective == Perspective.Editor) { var symbol = await _editor?.GetSymbolAsync(offset); if (symbol != null) { switch (symbol.Kind) { case CursorKind.CompoundStatement: case CursorKind.NoDeclarationFound: case CursorKind.NotImplemented: case CursorKind.FirstDeclaration: case CursorKind.InitListExpression: case CursorKind.IntegerLiteral: case CursorKind.ReturnStatement: case CursorKind.WhileStatement: case CursorKind.BinaryOperator: return(null); default: return(new SymbolViewModel(symbol)); } } } if (offset != -1 && ShellViewModel.Instance.CurrentPerspective == Perspective.Debug) { var expression = _editor?.GetWordAtOffset(offset); if (expression != string.Empty) { var debugManager = IoC.Get <IDebugManager2>(); var newToolTip = new DebugHoverProbeViewModel(); bool result = newToolTip.AddWatch(expression); return(newToolTip); } } return(null); }