Перейти к содержанию

Автодополнение кода

Автодополнение — это самый быстрый режим Koda. Оно подключается прямо во время набора и предлагает следующее продолжение кода, не переключая вас в отдельный диалог.

Если чат — это разговор, то автодополнение — это ритм работы: вы пишете, Koda подхватывает и предлагает следующий шаг.

Быстрый старт

Шаг 1: Включите автодополнение

Проверка статуса:

  • Посмотрите в строку состояния (нижний правый угол IDE)
  • Значок — включено
  • Значок — выключено

Включение:

  1. Нажмите на KodaTab в строке состояния
  2. Нажмите Enable KodaTab

Либо через интерфейс Koda:

  1. Откройте Настройки
  2. Перейдите на вкладку MCP
  3. Установите нужные опции в секции Автодополнение
  1. Откройте Settings → Tools → Koda
  2. Включите Enable Tab Autocomplete
  3. Нажмите OK

Когда оно особенно полезно

Автодополнение хорошо показывает себя там, где вы уже понимаете, что хотите сделать, но не хотите тратить время на рутину:

  • дописывание типовых конструкций;
  • повторяющиеся обработчики и проверки;
  • продолжение уже начатой функции;
  • работа в знакомом коде, где важнее скорость, чем обсуждение вариантов.

Как это выглядит

Во время набора Koda анализирует текущий файл и ближайший контекст, после чего показывает продолжение прямо в редакторе. Вы можете:

  • принять подсказку целиком;
  • принять её частично, если IDE это поддерживает;
  • отклонить и продолжить писать по-своему.

Быстрый старт

1. Просто начните писать

В большинстве сценариев ничего специально включать не нужно: откройте файл и начните набирать код.

function calcul

Koda может предложить продолжение вроде:

function calculateSum(a: number, b: number): number {
  return a + b;
}

2. Примите или отклоните подсказку

Обычно используются такие действия:

  • Tab — принять подсказку;
  • Esc — отклонить;
  • частичное принятие — если это поддерживается вашей IDE и раскладкой.

Как это работает

Во время набора Koda подбирает контекст вокруг курсора и только потом предлагает продолжение. Обычно учитывается несколько источников сразу:

  • префикс и суффикс текущего файла;
  • импортированные сущности, которые реально связаны с кодом рядом с курсором;
  • определения функций, типов и классов через LSP;
  • недавние открытые или изменённые файлы, если они релевантны.

Это позволяет не просто дописывать текущую строку, а опираться на уже существующую структуру проекта.

Контекст текущего файла

В подсказку всегда попадает код до и после позиции курсора. Поэтому Koda лучше работает там, где уже видны сигнатуры, импорты, окружающая функция и стиль оформления.

Определения через LSP

Если рядом используется функция, тип или класс, Koda может подтянуть их определения через Language Server Protocol. Например, если вы вызываете функцию или работаете с параметром типа User, автодополнение чаще предлагает поля и операции, которые действительно подходят этому типу.

Импорты и недавние файлы

Когда проект уже открыт в IDE, Koda может использовать связанные импорты и фрагменты из недавно просмотренных файлов. Из-за этого подсказки становятся точнее в живом рабочем контексте, чем в изолированном пустом файле.

Что помогает автодополнению работать лучше

Понятные имена

Чем яснее вы называете функции, переменные и типы, тем точнее продолжения.

✅ Лучше:

function calculateTotalPrice(products: Product[]): number {

❌ Слишком размыто:

function calc(arr: any[]): number {

Наличие контекста в файле

Автодополнению проще помогать, когда рядом уже есть импорты, типы, названия сущностей и общий стиль проекта.

✅ Лучше:

import { User } from './types';

function processUser(user: User) {

Комментарии с намерением

Короткий комментарий перед кодом часто помогает задать направление.

// Sort users by creation date, newest first

Открытые связанные файлы

Если перед этим вы открывали файл с типами, сервисами или соседними компонентами, Koda чаще подхватывает нужные сущности и предлагает более уместное продолжение.

Частичное принятие подсказки

Во многих IDE можно не принимать предложение целиком, а забирать его по частям. Это удобно, если начало подходит, а дальше вы хотите продолжить вручную.

Обычно доступны такие сценарии:

  • принять подсказку полностью через Tab;
  • отклонить через Esc;
  • принять часть предложения, если это поддерживается вашей IDE.

Настройка

Автодополнение обычно работает сразу, но при необходимости его можно точнее настроить: включить или выключить полностью, ограничить для отдельных типов файлов и скорректировать поведение многострочных подсказок.

Проверить стоит в первую очередь:

  • включено ли автодополнение в настройках Koda;
  • не отключено ли оно для текущего типа файла;
  • не мешают ли слишком агрессивные ограничения для Markdown, логов или служебных файлов.

Если вы часто работаете в текстовых или сгенерированных файлах, полезно отключить автодополнение именно для них, а не целиком для всей IDE.

Next Edit Prediction

Помимо обычного продолжения во время набора, Koda может предсказывать и следующие правки в уже редактируемом коде. Этот сценарий часто называют Next Edit Prediction.

В отличие от обычного автодополнения, здесь модель ориентируется не только на текущую строку, но и на характер ваших последних изменений. Это особенно полезно, когда вы делаете однотипный рефакторинг, дописываете шаблонный код или последовательно вносите похожие правки в один и тот же фрагмент.

NEP особенно хорошо подходит для таких задач:

  • продолжение серии связанных правок;
  • добавление типового бойлерплейта;
  • доработка начатой функции несколькими логическими шагами;
  • повторяющиеся изменения в компоненте, тесте или обработчике.

Если предсказания кажутся слишком навязчивыми или нерелевантными, обычно помогает либо вернуться к обычному автодополнению, либо упростить текущий контекст: завершить предыдущую правку, дать коду более явную структуру и только потом ждать следующую подсказку.

Если в вашей IDE или конфигурации Koda эта возможность вынесена в отдельную настройку, включать и отключать её стоит именно там. Проверять точное название параметра удобнее в разделе Конфигурация и в документации по моделям.

Советы по эффективному использованию

  • принимайте автодополнение там, где оно убирает рутину, а не там, где вам важно самому продумать решение;
  • держите открытыми связанные файлы, если хотите получить более точные подсказки;
  • используйте чат для выбора подхода, а автодополнение — для быстрого набора реализации;
  • не бойтесь отклонять неудачные предложения: это нормальная часть рабочего процесса.

Ограничения

Автодополнение полезно, но у него есть естественные границы:

  • оно не заменяет понимание задачи и архитектурное решение;
  • качество подсказок зависит от контекста, модели и состояния проекта в IDE;
  • задержки могут зависеть от сети, модели и объёма доступного контекста;
  • даже удачные предложения нужно воспринимать как помощь, а не как гарантированно правильный ответ.

Поэтому лучший сценарий — использовать его как ускоритель набора, а не как замену проверке, чтению кода и тестированию.

Связанные материалы

Когда автодополнение подходит хуже

Лучше переключиться в чат, если:

  • нужно объяснение, а не продолжение;
  • вы ещё не решили, какой подход выбрать;
  • задача требует анализа нескольких файлов;
  • важно обсудить варианты, а не просто дописать код.

А если задача уже тянет на серию действий по проекту, удобнее идти в режим агента.

Если подсказки кажутся слабыми

Обычно помогает одно из следующих действий:

  1. дать файлу чуть больше структуры — добавить типы, сигнатуру, комментарий или название функции;
  2. начать с более явного первого шага, чтобы Koda подхватила направление;
  3. отклонить неудачную подсказку и продолжить писать вручную — модель подстроится под новый контекст.

Если автодополнение мешает

Такое бывает, особенно в документации, логах, шаблонных текстовых файлах или сгенерированном коде. В таких случаях удобно:

  • временно отключить автодополнение;
  • ограничить его для отдельных типов файлов в настройках;
  • использовать только чат там, где важнее точность объяснений, чем скорость набора.

Частые проблемы

Автодополнение не появляется

Проверьте по порядку:

  1. открыт ли обычный редактируемый файл;
  2. включено ли автодополнение в настройках Koda;
  3. не отключено ли оно для текущего типа файла;
  4. есть ли доступ к выбранной модели и аккаунту.

Если проблема сохраняется, загляните в раздел Решение общих проблем.

Подсказки появляются слишком поздно

Чаще всего причина в сети, выбранной модели или слишком тяжёлом контексте файла. Если задержки мешают, попробуйте более лёгкий рабочий сценарий: писать небольшими фрагментами и чаще задавать структуру вручную.

Подсказки не по делу

Это почти всегда означает, что модели не хватает сигнала о вашем намерении. Помогают:

  • более говорящие имена;
  • наличие типов;
  • комментарий перед фрагментом;
  • небольшой ручной каркас кода перед тем, как ждать продолжение.

Как сочетать с другими режимами

Хороший практический сценарий выглядит так:

1. В чате понять подход
2. Автодополнением быстро дописать реализацию
3. При необходимости вернуться в чат за пояснением
4. Для большой задачи переключиться в агент

Именно так автодополнение обычно приносит максимум пользы: не вместо остальных режимов, а вместе с ними.