/// <summary>
 /// Initializes a new instance of the <see cref="TermWindow"/> class.
 /// </summary>
 public TermWindow(TermWindowPackage package) : base(package)
 {
     this.Caption = "Terminal Window";
     package.CreateTerminalAsync(
         EmbeddedTerminalOptions.Default,
         pane: this
         )
     .FileAndForget("WhackWhackTerminal/TerminalWindow/Open");
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ServiceToolWindowControl"/> class.
        /// </summary>
        public TermWindowControl(TermWindowPackage package)
        {
            this.package = package;

            this.InitializeComponent();

            this.Focusable  = true;
            this.GotFocus  += TermWindowControl_GotFocus;
            this.LostFocus += TermWindowControl_LostFocus;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ServiceToolWindowControl"/> class.
        /// </summary>
        public ServiceToolWindowControl(ToolWindowContext context)
        {
            this.InitializeComponent();

            this.Focusable = true;
            this.GotFocus += TermWindowControl_GotFocus;

            var target = new TerminalEvent(context.Package, this.terminalView, context.SolutionUtils);

            this.rpc           = JsonRpc.Attach(context.ServiceHubStream, target);
            this.package       = context.Package;
            this.solutionUtils = context.SolutionUtils;
        }
예제 #4
0
 internal TerminalScriptingObject(
     TermWindowPackage package,
     JsonRpc ptyService,
     SolutionUtils solutionUtils,
     string workingDirectory,
     bool useSolutionDir,
     string shellPath,
     IEnumerable <string> args,
     IDictionary <string, string> env)
 {
     this.package          = package;
     this.ptyService       = ptyService;
     this.solutionUtils    = solutionUtils;
     this.workingDirectory = workingDirectory;
     this.useSolutionDir   = useSolutionDir;
     this.shellPath        = shellPath;
     this.args             = args;
     this.env = env;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="TermWindowControl"/> class.
        /// </summary>
        public TermWindowControl(ToolWindowContext context)
        {
            this.InitializeComponent();

            this.package   = context.Package;
            this.Focusable = true;
            this.GotFocus += TermWindowControl_GotFocus;

            var target = new TerminalEvent(context.Package, this.terminalView, context.SolutionUtils);
            var rpc    = JsonRpc.Attach(context.ServiceHubStream, target);

            context.SolutionUtils.SolutionChanged += SolutionUtils_SolutionChanged;
            VSColorTheme.ThemeChanged             += VSColorTheme_ThemeChanged;

            this.terminalView.ScriptingObject = new TerminalScriptingObject(context.Package, rpc, context.SolutionUtils, null, true, null, null, null);

            string extensionDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            string rootPath           = Path.Combine(extensionDirectory, "WebView\\default.html").Replace("\\\\", "\\");

            this.terminalView.Navigate(new Uri(rootPath));
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="TermWindow"/> class.
 /// </summary>
 public TermWindowPane(TermWindowPackage package) : base(null)
 {
     this.Content = new TermWindowControl(package);
 }
예제 #7
0
 public TerminalEvent(TermWindowPackage package, BetterBrowser browser, SolutionUtils solutionUtils)
 {
     this.package = package;
     this.browser = browser;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="TermWindow"/> class.
 /// </summary>
 public RendererWindow(TermWindowPackage package) : base(package)
 {
 }
예제 #9
0
 internal TerminalScriptingObject(TerminalRenderer terminal, TermWindowPackage package)
 {
     this.terminal = terminal;
     this.package  = package;
 }