概要
- リアルタイム双方向編集 を実現する小規模なPoCシステムの紹介
- LSPサーバー とWebSocketsでエディタとGUI間のデータ同期
- 任意のモダンなコードエディタ とGUIを連携可能
- 既存の コードベースCAD ツールの課題整理
- 今後の展望と期待
リアルタイム双方向編集のPoC構築
- 自宅プロジェクト に役立つCAD環境の構築意欲
- 快適な開発環境 (例: Emacs, Neovim)で作業したいというニーズ
- Kevin Lynagh氏のcodeCAD における双方向編集のアイデアへの共感
- ポイント :GUIでジオメトリを操作→ソースコード自動更新、コード編集→GUI自動反映
- <textarea>による編集体験 への不満、理想は自分のエディタ利用
- 実現課題 :
- ソースコードの自動書き換え方式(ファイル監視、即時反映など)
- エディタとUI間の同期・競合回避
- LSPサーバーの必要性
- コメントや整形の保持
- 必要最低限の実装範囲の見極め
LSPサーバーによる双方向編集の可能性
- LSP(Language Server Protocol) の活用経験
- LSPサーバーとWebSockets によるエディタとWebアプリ間のリアルタイム通信
- デモ概要 :
- テキストエディタとGUIを並列表示
- 双方向でデータが即時同期
- 技術詳細やコードはGitHubで公開
既存コードベースCADツールの比較
- 双方向編集自体 は新しくないが、 リアルタイムかつ好みのエディタ で実現する点が新規性
- 既存ツールの課題整理:
- Fusion 360 :パラメータの双方向編集は可能だが、完全なコードベースではなく、エディタも限定
- OpenSCAD :外部エディタ利用可能だが、GUIへの反映は一方向のみ
- Zoo :双方向編集は内蔵エディタ限定
- Arcol :建築向けでプログラマー向けではない
- 理想 :リアルタイム双方向編集+好みのエディタ+GUI連携の三位一体
今後の展望
- 今回のデモは 実験的な試作 であり、今後の開発予定は未定
- LSPサーバーの新たな活用方法 への期待
- OpenSCAD+Neovim+OpenSCAD LSPサーバー の組み合わせが現時点で最良の体験
- 本格的な実装には 競合解決・インクリメンタル編集・LSPサーバー内部実装 など多大な労力が必要
- Kevin氏の今後のcodeCAD開発 への期待
LSP(Language Server Protocol)について
- LSP はエディタやIDEで診断、コードアクション、定義ジャンプ、補完機能などを提供するプロトコル
- Neovimなどの設定 でLSPサーバーが広く活用されている現状
- Arcol では現在プログラマーを積極採用中、興味があれば james@arcol.io へ連絡推奨