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")
import { Daytona, LspLanguageId } from '@daytonaio/sdk'
// サンドボックスを作成const daytona = new Daytona()const sandbox = await daytona.create({ language: 'typescript'})
// TypeScript用のLSPサーバーを作成const lspServer = await sandbox.createLspServer( LspLanguageId.TYPESCRIPT, "workspace/project")
サポート対象の言語
Daytona SDK では、Python および TypeScript の LspLanguageId
列挙体を使用して、各種言語向けの LSP サーバーを作成できます。
from daytona import LspLanguageId
# 利用可能な言語 ID
LspLanguageId.PYTHONLspLanguageId.TYPESCRIPT
import { LspLanguageId } from '@daytonaio/sdk'
// 利用可能な言語 IDLspLanguageId.PYTHONLspLanguageId.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}")
const completions = await lspServer.completions( "workspace/project/main.ts", { line: 10, character: 15 })console.log('Completions:', completions)