public static bool Host(int Port, SharpRoom room, out HostResult result) { if (IsConnected) { result = HostResult.AlreadyHosted; return(false); } return(_ishost = isconnected = server.Host(out result, Port, room)); }
/// <summary> /// Open up a new document window with the specified file /// </summary> public override HostResult LoadFileIntoNewWindow(string filePath) { try { VsShellUtilities.OpenDocument(_vsAdapter.ServiceProvider, filePath); return(HostResult.Success); } catch (Exception e) { return(HostResult.NewError(e.Message)); } }
/// <summary> /// Perform a vertical buffer split, which is essentially just another window in a different tab group. /// </summary> public override HostResult SplitViewVertically(ITextView value) { try { _dte.ExecuteCommand("Window.NewWindow"); _dte.ExecuteCommand("Window.NewVerticalTabGroup"); return(HostResult.Success); } catch (Exception e) { return(HostResult.NewError(e.Message)); } }
public override HostResult LoadFileIntoNewWindow(string filePath) { try { var textDocument = TextDocumentFactoryService.CreateAndLoadTextDocument(filePath, TextBufferFactoryService.TextContentType); var wpfTextView = MainWindow.CreateTextView(textDocument.TextBuffer); MainWindow.AddNewTab(System.IO.Path.GetFileName(filePath), wpfTextView); return(HostResult.Success); } catch (Exception ex) { return(HostResult.NewError(ex.Message)); } }
/// <summary> /// In a perfect world this would replace the contents of the existing ITextView /// with those of the specified file. Unfortunately this causes problems in /// Visual Studio when the file is of a different content type. Instead we /// mimic the behavior by opening the document in a new window and closing the /// existing one /// </summary> public override HostResult LoadFileIntoExistingWindow(string filePath, ITextView textView) { try { // Open the document before closing the other. That way any error which occurs // during an open will cause the method to abandon and produce a user error // message VsShellUtilities.OpenDocument(_vsAdapter.ServiceProvider, filePath); _textManager.CloseView(textView); return(HostResult.Success); } catch (Exception e) { return(HostResult.NewError(e.Message)); } }
public override HostResult SplitViewHorizontally(ITextView textView) { // First find the IVimViewInfo that contains this ITextView IVimViewInfo vimViewInfo; if (!TryGetVimViewInfo(textView, out vimViewInfo)) { return(HostResult.NewError(ErrorCouldNotFindVimViewInfo)); } var newTextView = MainWindow.CreateTextView(textView.TextBuffer); var newTextViewHost = MainWindow.CreateTextViewHost(newTextView); vimViewInfo.VimWindow.AddVimViewInfo(newTextViewHost); return(HostResult.Success); }
public override HostResult MoveFocus(ITextView textView, Direction direction) { foreach (var vimWindow in _vimWindowManager.VimWindowList) { var list = vimWindow.VimViewInfoList; int i = 0; while (i < list.Count) { if (list[i].TextView == textView) { break; } i++; } if (i >= list.Count) { continue; } int target = -1; switch (direction) { case Direction.Up: target = i - 1; break; case Direction.Down: target = i + 1; break; } if (target >= 0 && target < list.Count) { var targetTextView = list[target].TextViewHost.TextView; Keyboard.Focus(targetTextView.VisualElement); return(HostResult.Success); } else { return(HostResult.NewError(ErrorInvalidDirection)); } } return(HostResult.NewError(ErrorCouldNotFindVimViewInfo)); }
public override HostResult MoveFocus(ITextView textView, Direction direction) { bool result = false; switch (direction) { case Direction.Up: result = _textManager.MoveViewUp(textView); break; case Direction.Down: result = _textManager.MoveViewDown(textView); break; } return(result ? HostResult.Success : HostResult.NewError("Not Implemented")); }
public override HostResult MoveFocus(ITextView textView, Direction direction) { bool result = false; if (direction.IsUp) { result = _textManager.MoveViewUp(textView); } else if (direction.IsDown) { result = _textManager.MoveViewDown(textView); } else if (direction.IsLeft || direction.IsRight) { result = false; } return(result ? HostResult.Success : HostResult.NewError("Not Implemented")); }
public bool Host(out HostResult result, int Port, SharpRoom room) { if (hosted) { result = HostResult.AlreadyHosted; return(false); } try { this.port = Port; this.room = room; IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, this.port); listener = new TcpListener(endPoint); listener.Start(); serverclient = new SharpClient("ServerClient"); room.AssignClient(serverclient); listenerThread = new Thread(ListenClients); listenerThread.Start(); hosted = true; S_OnHosted(); result = HostResult.Succes; return(true); } catch (Exception e) { try { listener.Stop(); } catch { } try { listenerThread.Abort(); } catch { } listenerThread = null; listener = null; hosted = false; result = HostResult.UnhandledException; return(false); } }
// TODO: The ITextView parameter isn't necessary. This command should always load into // the active window, not existing public override HostResult LoadFileIntoExistingWindow(string filePath, ITextView textView) { var vimWindow = MainWindow.ActiveVimWindowOpt; if (vimWindow == null) { return(HostResult.NewError("No active vim window")); } try { var textDocument = TextDocumentFactoryService.CreateAndLoadTextDocument(filePath, TextBufferFactoryService.TextContentType); var wpfTextViewHost = MainWindow.CreateTextViewHost(MainWindow.CreateTextView(textDocument.TextBuffer)); vimWindow.Clear(); vimWindow.AddVimViewInfo(wpfTextViewHost); return(HostResult.Success); } catch (Exception ex) { return(HostResult.NewError(ex.Message)); } }
public override HostResult LoadFileIntoNewWindow(string filePath) { return(HostResult.NewError("")); }
public override HostResult LoadFileIntoExistingWindow(string filePath, ITextView textView) { return(HostResult.NewError("")); }
public override HostResult SplitViewVertically(ITextView value) { return(HostResult.NewError("")); }
private void Host_Click(object sender, RoutedEventArgs e) { Result = HostResult.Host; this.Hide(); }
private void Return_Click(object sender, RoutedEventArgs e) { Result = HostResult.MainMenu; this.Hide(); }
public override HostResult Make(bool jumpToFirstError, string arguments) { return(HostResult.NewError("")); }
public BaseActionArgs() { Result = new HostResult(); }
/// <summary> /// Verticaly window splits are not supported in visual studio /// </summary> public override HostResult SplitViewVertically(ITextView value) { return(HostResult.NewError(Resources.UnsupportedInVisualStudio)); }
public override HostResult MoveFocus(ITextView textView, Direction direction) { return(HostResult.NewError("Not Supported")); }
public void GoToFile2() { Create("foo bar"); _vimHost.Setup(x => x.IsDirty(_textBuffer)).Returns(false).Verifiable(); _vimHost.Setup(x => x.LoadFileIntoExistingWindow("foo", _textBuffer)).Returns(HostResult.NewError("")).Verifiable(); _statusUtil.Setup(x => x.OnError(Resources.NormalMode_CantFindFile("foo"))).Verifiable(); _operations.GoToFile(); _statusUtil.Verify(); _vimHost.Verify(); }