コード補完
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
}
}トラブルシューティング
よくある問題
補完が表示されない
- コード補完が有効になっているか確認
- ファイルが正しく保存されているか確認
- プロジェクトインデックスが完了しているか確認
補完が遅い
- プロジェクトサイズを確認(大きなプロジェクトは時間がかかる)
- バックグラウンドインデックスを有効にする
- 不要なファイルを除外設定に追加
不正確な提案
- プロジェクト設定を確認
- 言語サーバーを再起動
- インデックスを再構築
デバッグ設定
json
{
"debug": {
"logCompletions": true,
"showPerformanceMetrics": true,
"verboseLogging": false
}
}ベストプラクティス
効果的な使用方法
- 一貫した命名: 明確で一貫した変数・関数名を使用
- 型アノテーション: TypeScriptやPythonで型ヒントを活用
- 適切なインポート: 必要なライブラリを正しくインポート
- コメント: 複雑なロジックにコメントを追加
プロジェクト設定
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のコード補完は、開発者の生産性を最大化するよう設計されており、正確で関連性の高い提案を通じて、より速く、より良いコードを書くことを支援します。