コンテンツにスキップ

Language Server Protocol

Daytona(デイトナ)SDKは、サンドボックスインスタンス経由でLSP(Language Server Protocol)をサポートします。これにより、コード補完や診断などの高度な言語機能を利用できます。

LSPサーバーの作成

Daytona(デイトナ)SDKは、PythonおよびTypeScriptでLSPサーバーを作成する機能を提供します。path_to_project の基準パスはデフォルトで現在のサンドボックスユーザーのホーム直下です。たとえば workspace/project/home/[username]/workspace/project を指します。先頭を / にすることで絶対パスも指定できます。

from daytona import Daytona, LspLanguageId
# サンドボックスを作成
daytona = Daytona()
sandbox = daytona.create()
# Python用のLSPサーバーを作成
lsp_server = sandbox.create_lsp_server(
language_id=LspLanguageId.PYTHON,
path_to_project="workspace/project"
)

サポート対象の言語

Daytona SDK では、Python および TypeScript の LspLanguageId 列挙体を使用して、各種言語向けの LSP サーバーを作成できます。

from daytona import LspLanguageId
# 利用可能な言語 ID
LspLanguageId.PYTHON
LspLanguageId.TYPESCRIPT
  • LspLanguageId.PYTHON: Python 向け言語サーバー。
  • LspLanguageId.TYPESCRIPT: TypeScript/JavaScript 向け言語サーバー。

LSP 機能

Daytona SDK は、コード解析や編集のための各種 LSP 機能を提供します。

コード補完

Daytona SDK では、Python と TypeScript を用いて、ファイル内の特定位置のコード補完候補を取得できます。

completions = lsp_server.completions(
path="workspace/project/main.py",
position={"line": 10, "character": 15}
)
print(f"Completions: {completions}")