Skip to content

コード補完

Trae IDEのコード補完機能は、AIを活用したインテリジェントなコード提案を提供し、開発速度を大幅に向上させます。コンテキストを理解し、関連性の高い正確な提案を行うよう設計されています。

概要

コード補完は、入力中にリアルタイムでコード提案を提供する機能です。従来の構文ベースの補完を超えて、AIがコードのコンテキスト、プロジェクト構造、コーディングパターンを理解し、インテリジェントな提案を行います。

主な機能

  • AIを活用した提案: 機械学習モデルによる高精度な補完
  • コンテキスト認識: 現在のファイル、プロジェクト、インポートを理解
  • マルチライン補完: 完全な関数やコードブロックの提案
  • 言語横断サポート: 複数のプログラミング言語に対応
  • リアルタイム提案: 入力と同時に即座に提案を表示

補完の種類

1. 基本的な補完

変数とメソッド名

javascript
const user = {
  firstName: 'John',
  lastName: 'Doe'
};

// 'user.' と入力すると提案される:
user.firstName
user.lastName

関数パラメータ

python
def calculate_area(length, width):
    return length * width

# 関数呼び出し時にパラメータ名が提案される
calculate_area(length=10, width=5)

2. インテリジェント補完

コンテキストベースの提案

javascript
// APIレスポンスを処理する関数内で
async function processUserData(response) {
    // 'response.' と入力すると、APIレスポンス構造に基づいて提案
    const userData = response.data.user;
    const status = response.status;
}

パターン認識

python
# リスト内包表記のパターンを認識
numbers = [1, 2, 3, 4, 5]
# 'squared = [' と入力すると提案される:
squared = [x**2 for x in numbers]

3. マルチライン補完

完全な関数の生成

javascript
// 'async function fetchUser' と入力すると提案される:
async function fetchUser(userId) {
    try {
        const response = await fetch(`/api/users/${userId}`);
        const user = await response.json();
        return user;
    } catch (error) {
        console.error('Error fetching user:', error);
        throw error;
    }
}

クラス構造の補完

python
# 'class UserManager:' と入力すると提案される:
class UserManager:
    def __init__(self):
        self.users = []
    
    def add_user(self, user):
        self.users.append(user)
    
    def get_user(self, user_id):
        return next((user for user in self.users if user.id == user_id), None)

言語別サポート

JavaScript/TypeScript

  • ES6+構文: アロー関数、分割代入、テンプレートリテラル
  • React/Vue: コンポーネント構造、フック、ライフサイクルメソッド
  • Node.js: モジュールインポート、非同期パターン
  • 型推論: TypeScriptの型システムとの統合
typescript
interface User {
    id: number;
    name: string;
    email: string;
}

// 型に基づいた補完
function updateUser(user: User) {
    // 'user.' と入力すると、User インターフェースのプロパティが提案される
    user.id
    user.name
    user.email
}

Python

  • 標準ライブラリ: datetime、os、sys、json等
  • 人気フレームワーク: Django、Flask、FastAPI
  • データサイエンス: NumPy、Pandas、Matplotlib
  • 型ヒント: Python 3.5+の型アノテーション
python
import pandas as pd

# Pandasメソッドの補完
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 'df.' と入力すると、DataFrameメソッドが提案される
df.head()
df.describe()
df.groupby()

その他の言語

  • Java: Spring Framework、JUnit、Maven/Gradle
  • C#: .NET Framework、Entity Framework、LINQ
  • Go: 標準ライブラリ、Gin、Echo
  • Rust: Cargo、Serde、Tokio
  • PHP: Laravel、Symfony、Composer

設定とカスタマイズ

補完設定

json
{
  "codeCompletion": {
    "enabled": true,
    "autoTrigger": true,
    "delay": 100,
    "maxSuggestions": 10,
    "showDocumentation": true,
    "includeSnippets": true
  }
}

言語固有の設定

json
{
  "languageSettings": {
    "javascript": {
      "enableAICompletion": true,
      "preferES6Syntax": true,
      "includeNodeModules": true
    },
    "python": {
      "enableAICompletion": true,
      "includeTypeHints": true,
      "preferAsyncSyntax": true
    }
  }
}

キーボードショートカット

  • 補完を手動トリガー: Ctrl+Space (Windows/Linux) または Cmd+Space (macOS)
  • 次の提案: Tab または
  • 前の提案: Shift+Tab または
  • 提案を受け入れ: Enter または Tab
  • 提案をキャンセル: Esc

高度な機能

プロジェクト認識補完

コード補完は、プロジェクト全体のコンテキストを理解します:

javascript
// プロジェクト内の他のファイルからインポートされた関数
import { calculateTax } from './utils/tax-calculator';
import { formatCurrency } from './utils/formatters';

// これらの関数は補完候補に表示される
const total = calculateTax(amount);
const formatted = formatCurrency(total);

ライブラリとフレームワーク統合

python
# Django モデルの補完
from django.db import models

class User(models.Model):
    # 'models.' と入力すると、Djangoフィールドタイプが提案される
    name = models.CharField(max_length=100)
    email = models.EmailField()
    created_at = models.DateTimeField(auto_now_add=True)

スニペット統合

よく使用されるコードパターンのスニペット:

javascript
// 'tryc' と入力すると展開される:
try {
    // コードをここに
} catch (error) {
    console.error(error);
}

// 'afunc' と入力すると展開される:
const functionName = async () => {
    // 非同期コードをここに
};

パフォーマンス最適化

インデックス作成

  • プロジェクトインデックス: 起動時にプロジェクト構造をインデックス化
  • 増分更新: ファイル変更時にインデックスを更新
  • キャッシュ: 頻繁に使用される補完をキャッシュ

メモリ管理

json
{
  "performance": {
    "maxCacheSize": "100MB",
    "indexingThreads": 4,
    "enableBackgroundIndexing": true,
    "purgeUnusedCache": true
  }
}

トラブルシューティング

よくある問題

補完が表示されない

  1. コード補完が有効になっているか確認
  2. ファイルが正しく保存されているか確認
  3. プロジェクトインデックスが完了しているか確認

補完が遅い

  1. プロジェクトサイズを確認(大きなプロジェクトは時間がかかる)
  2. バックグラウンドインデックスを有効にする
  3. 不要なファイルを除外設定に追加

不正確な提案

  1. プロジェクト設定を確認
  2. 言語サーバーを再起動
  3. インデックスを再構築

デバッグ設定

json
{
  "debug": {
    "logCompletions": true,
    "showPerformanceMetrics": true,
    "verboseLogging": false
  }
}

ベストプラクティス

効果的な使用方法

  1. 一貫した命名: 明確で一貫した変数・関数名を使用
  2. 型アノテーション: TypeScriptやPythonで型ヒントを活用
  3. 適切なインポート: 必要なライブラリを正しくインポート
  4. コメント: 複雑なロジックにコメントを追加

プロジェクト設定

json
{
  "project": {
    "excludePatterns": [
      "node_modules/**",
      "*.log",
      "dist/**",
      ".git/**"
    ],
    "includePatterns": [
      "src/**/*.js",
      "src/**/*.ts",
      "src/**/*.py"
    ]
  }
}

統計とメトリクス

補完統計

  • 受け入れ率: 提案された補完の使用率
  • 応答時間: 補完表示までの時間
  • 精度: 関連性の高い提案の割合

パフォーマンスメトリクス

json
{
  "metrics": {
    "averageCompletionTime": "50ms",
    "cacheHitRate": "85%",
    "indexSize": "25MB",
    "activeLanguages": ["javascript", "python", "typescript"]
  }
}

Trae IDEのコード補完は、開発者の生産性を最大化するよう設計されており、正確で関連性の高い提案を通じて、より速く、より良いコードを書くことを支援します。

究極の AI 駆動 IDE 学習ガイド