Secondary Terminal

アプリケーション
2025-06-28 (8 months ago)
Secondary Terminal

Secondary Terminal

VSCode のサイドバーで動作する高機能ターミナル拡張機能です。

特徴

  • サイドバーターミナル: VSCode のサイドバーに統合されたターミナル
  • 完全な PTY エミュレーション: Python の pty モジュールを使用した本格的な疑似ターミナル実装
  • インタラクティブアプリ対応: vim、less、nano などが正常動作
  • 動的サイズ調整: サイドバーのサイズに合わせてターミナルサイズを自動調整
  • UTF-8 完全対応: 日本語を含むマルチバイト文字を正しく表示
  • マルチタブ: タブごとに独立したシェルプロセスと ACE エディタ
  • ACE エディタ統合: タブごとにコマンド編集エディタを内蔵。Cmd+Enter でターミナルに送信
  • クリップボード画像貼り付け: macOS でクリップボードの画像をファイルパス参照として挿入
  • ドロップゾーン: エクスプローラーからファイルをドラッグ&ドロップしてパス参照を挿入

技術的背景

VSCode の Electron 環境では node-pty のネイティブモジュールが正しくビルドできないため、Python の pty モジュールを使用したカスタム PTY エミュレーションを実装しました。

フロントエンドには xterm.js を使用し、Node.js の child_process で VSCode と Python 間の通信を行っています。

技術スタック

  • フロントエンド: xterm.js + ACE エディタ
  • バックエンド: Python pty モジュール
  • 通信: Node.js child_process
  • 言語: TypeScript

リポジトリ

GitHub リポジトリ

アーカイブ