---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.4
alternate:
  - https://sourcecraft.dev/portal/docs/en/code-assistant/operations/autocompletion.md
  - https://sourcecraft.dev/portal/docs/ru/code-assistant/operations/autocompletion.md
  - href: ru/code-assistant/operations/autocompletion.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
title: Работа с SourceCraft Code Assistant в режиме автодополнения кода
description: "Как использовать Code\_Assistant в режиме автодополнения кода."
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/ru/llms.txt


# Автодополнение кода в SourceCraft Code Assistant

<!-- source: ru/_includes/code-assistant/vscode-ui-language.md -->
{% note info %}

Язык интерфейса плагина для Visual Studio Code зависит от установленного языка IDE.

{% endnote %}
<!-- endsource: ru/_includes/code-assistant/vscode-ui-language.md -->

<!-- source: ru/_includes/code-assistant/instruction-autocompletion.md -->
<!-- source: ru/_includes/code-assistant/syntax-support.md -->
В режиме Smart autocompletion явно поддерживается автодополнение кода для следующих языков программирования и фреймворков:

* C++
* Go
* Java
* JavaScript/TypeScript
* Kotlin
* Python
* Scala
* SQL
* Swift

Автодополнение может работать и для других языков программирования. Для языков, которые представлены в общедоступных репозиториях в меньшей мере, количество и качество предлагаемых подсказок будет ниже.
<!-- endsource: ru/_includes/code-assistant/syntax-support.md -->

## Примеры работы {#examples}

В примере сначала для корректировки кода используется режим [Insert-режим](#insert), а затем задействуется [Replace-режим](#replace), предлагая саджест к последующим строкам исходя из правки:

<iframe width="640" height="360" src="https://runtime.strm.yandex.ru/player/video/vplvc2ilmvxzsfk4bkmf?autoplay=0&mute=0" allow="autoplay; fullscreen; picture-in-picture; encrypted-media" frameborder="0" scrolling="no"></iframe>

В примере в соответствии с изменением названия аргумента с помощью режима Replace-режим корректируются места его использования:

<iframe width="640" height="360" src="https://runtime.strm.yandex.ru/player/video/vplvnuo2g2jw2fjoybgf?autoplay=0&mute=0" allow="autoplay; fullscreen; picture-in-picture; encrypted-media" frameborder="0" scrolling="no"></iframe>

## Insert-режим {#insert}

Insert-режим в Code Assistant может предлагать наиболее подходящие варианты для завершения текущей строки или слова.

<!-- source: ru/_includes/code-assistant/auto-manual-modes.md -->
Code Assistant анализирует контекст вашего кода и предлагает подсказки в следующих режимах:
* автоматический;
* по запросу пользователя — с помощью сочетания клавиш **Ctrl** + **Space**. В Visual Studio Code вы также можете использовать сочетание клавиш **Ctrl** + **Enter**.
<!-- endsource: ru/_includes/code-assistant/auto-manual-modes.md -->

1. Откройте IDE и создайте тестовый файл `server.cpp` со следующим содержимым:

    ```cpp
    // simple web-server to work with sockets

    #include <iostream>
    #include <string>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <unistd.h>

    using namespace std;

    int main() {

    }
    ```

1. В блоке `int main()` начните вводить текст, например комментарий `//create socket`. Посмотрите предложение от Code Assistant:

    ```cpp
    ...
    int main() {

    //create socket
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);

    }
    ```    

1. Выберите, что делать с предложением:

    {% list tabs group=ide %}

    - Visual Studio Code {#vscode}

      <!-- source: ru/_includes/code-assistant/actions-with-suggestions.md -->
      * Чтобы принять предложение, нажмите клавишу **Tab**.
      * Чтобы принять часть предложения по одному слову, используйте сочетание клавиш **Ctrl** + **→** в Windows/Linux или **Command** + **→** в macOS.
      * Чтобы отменить предложение, нажмите клавишу **Esc**.
      <!-- endsource: ru/_includes/code-assistant/actions-with-suggestions.md -->

      * Если предложений несколько, вы можете переключаться между ними с помощью сочетаний клавиш **Alt** + **[** и **Alt** + **]** в Windows/Linux или **Option** + **[** и **Option** + **]** в macOS.

      ![image](../../_assets/code-assistant/vsc-test-autocomplete-screen.png)

    - IDE от JetBrains {#jb}

      * Чтобы принять предложение, нажмите клавишу **Tab**.
      * Чтобы отменить предложение, нажмите клавишу **Esc**.

      ![image](../../_assets/code-assistant/jb-test-autocomplete-screen.png)

    {% endlist %}

Видео с демонстрацией работы плагина смотрите на [странице Code Assistant](https://sourcecraft.dev/portal/code-assistant/).

## Replace-режим {#replace}

Replace-режим в Code Assistant может предлагать исправления и переименования в коде текущего файла в соответствии с внесенными изменениями.

1. Откройте IDE и создайте тестовый файл `fibonacci.py` со следующим содержимым:

   ```py
   def fibonacci(k):
       if k == 0:
           return 0
       elif k == 1:
           return 1
       else:
           return fibonacci(k-1) + fibonacci(k-2)
   
   print(fibonacci(10))
   ```

1. Поменяйте название переменной `k`, например на `n`. Посмотрите исправления от Code Assistant:

   ```py
   def fibonacci(n):
       if n == 0:
           return 0
       elif n == 1:
           return 1
       else:
           return fibonacci(n-1) + fibonacci(n-2)
   
   print(fibonacci(10))
   ```

   Code Assistant предлагает исправления построчно. Переместите курсор редактирования на нужную строку, чтобы увидеть ее исправление от Code Assistant.

1. Выберите, что делать с предложением:

   * Чтобы принять предложение, нажмите клавишу **Tab**.
   * Чтобы отменить предложение, нажмите клавишу **Esc**.

Модель учитывает историю редактирования кода. В зависимости от этой истории подсказки могут быть очень разными.
<!-- endsource: ru/_includes/code-assistant/instruction-autocompletion.md -->

## Индикатор генерации или отсутствия подсказки {#help-indicator}

<!-- source: ru/_includes/code-assistant/help-indicator.md -->
<!-- source: ru/_includes/code-assistant/help-indicator-load.md -->
Во время генерации подсказки слева от редактируемого кода отобразится значок загрузки ![image](../../_assets/code-assistant/loading.svg). Если генерация прекратится или результата не будет, вы увидите значок отсутствия подсказки ![image](../../_assets/code-assistant/chat_crossed.svg).
<!-- endsource: ru/_includes/code-assistant/help-indicator-load.md -->

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

Чтобы выключить или включить индикатор:

{% list tabs group=ide %}

  - Visual Studio Code {#vscode}

    1. На панели слева нажмите на значок плагина ![image](../../_assets/code-assistant/vsc-icon-small.svg).
    1. На открывшейся панели выберите ![image](../../_assets/console-icons/gear.svg) **Settings**.
    1. Перейдите в раздел **Автодополнение**.
    1. В открывшихся настройках выключите или включите опции **Индикатор подсказки Code Assistant** и **Индикатор загрузки Code Assistant**.

    ![image](../../_assets/code-assistant/vsc-settings-screen.png)

  - IDE от JetBrains {#jb}

    1. В правом верхнем углу нажмите ![image](../../_assets/console-icons/gear.svg) и выберите **Settings...**.
    1. В колонке слева выберите **SourceCraft Code Assistant**.
    1. Включите или выключите опцию **Disable suggest indicator**.
    1. Нажмите кнопку **Apply**, чтобы сохранить настройки.

    ![image](../../_assets/code-assistant/jb-settings-screen.png)

{% endlist %}
<!-- endsource: ru/_includes/code-assistant/help-indicator.md -->

#### Полезные ссылки {#see-also}

* [Как начать работать с SourceCraft Code Assistant](https://sourcecraft.dev/portal/docs/ru/code-assistant/index.md)
* [Интерфейс чата SourceCraft Code Assistant в IDE от JetBrains](https://sourcecraft.dev/portal/docs/ru/code-assistant/operations/chat.md)
* [Обзор сервиса SourceCraft Code Assistant](https://sourcecraft.dev/portal/docs/ru/code-assistant/concepts/index.md)