GitHub Copilot 코드 완성 기능 검사

완료됨

GitHub Copilot 두 가지 유형의 인라인 제안을 제공합니다. 고스트 텍스트 제안은 입력할 때 현재 커서 위치에 흐리게 표시된 텍스트로 표시됩니다. 다음 편집 제안(NES)은 최근 변경을 바탕으로 다음 코드 편집의 위치와 내용을 모두 예측합니다.

다음 작업을 수행할 때 고스트 텍스트 제안이 표시됩니다.

  • 편집기에서 부분 또는 전체 코드 줄을 입력합니다.
  • 편집기에서 부분 또는 전체 코드 주석을 입력합니다.
  • 편집기에서 빈 코드 줄을 입력합니다.

코드를 편집할 때 다음 편집 제안이 자동으로 표시됩니다. 최근 편집 내용에 따라 다음에 수행할 변경 내용을 예측하고 제안된 편집 위치를 보여 주는 특수 표시기와 함께 표시됩니다.

일반적인 다음 편집 제안 시나리오

다음 편집 제안은 세 가지 코딩 시나리오에서 특히 유용합니다.

  • 실수 잡기: NES는 오타(conts x = 5const x = 5), 반전된 삼항 식 및 잘못된 비교 연산자와 같은 문제를 감지한 다음 올바른 수정을 제안합니다.
  • 연계 의도 변경: 형식 또는 변수의 이름을 바꾸면 NES에서 모든 종속 코드를 통해 변경 내용을 전파하는 것이 좋습니다. 예를 들어, Point에서 Point3D로 클래스 이름을 바꾸면 필요한 위치에 z 좌표를 추가하라는 제안이 트리거됩니다.
  • 리팩터링: 변수 이름을 한 번 변경한 후 NES는 다른 모든 항목을 업데이트할 것을 제안합니다. 코드를 붙여넣은 후 NES는 주변 코드의 스타일에 맞게 조정할 것을 제안합니다.

고스트 텍스트 제안 생성

GitHub Copilot 작성하는 코드에 따라 코드 완성을 제안하여 앱 개발을 가속화합니다.

예를 들어 두 정수의 합계를 반환하는 C addInt # 메서드를 만들려는 경우를 가정해 보겠습니다. 메서드 서명을 입력하기 시작하면 GitHub Copilot이 만들고자 하는 코드를 제안합니다.

Visual Studio Code 편집기의 스크린샷으로 addInt 메서드 본문에 대한 고스트 텍스트 제안을 보여줍니다.

고스트 텍스트 제안은 색이 지정된 구문 강조 표시 없이 표시됩니다. 이렇게 하면 제안을 기존 코드와 구분할 수 있습니다. Tab 키를 눌러 제안된 코드를 수락할 수 있습니다.

Esc 키를 눌러 제안을 해제할 수 있습니다.

addInt 예제는 약간 단순하므로 GitHub Copilot 더 복잡한 작업에서 어떻게 하는지 궁금할 수 있습니다.

숫자 목록을 수락하고 목록에 포함된 소수의 합계를 반환하는 메서드를 만들려는 경우를 가정해 보겠습니다. 메서드 addPrimeNumbersInNumericList의 이름을 지정할 수 있습니다. 메서드 서명을 입력하기 시작하면 GitHub Copilot 제안 사항을 생성합니다. 다음은 그 예입니다.

addPrimeNumbersInNumericList 메서드 본체에 대한 자동 완성 제안을 보여주는 Visual Studio Code 편집기의 스크린샷

제안을 수락하기 전에 검토하는 것이 중요합니다. 이 고스트 텍스트 제안은 보기 좋으므로 Tab 키를 눌러 제안을 수락할 수 있습니다.

시나리오를 좀 더 계속해 보겠습니다.

제안이 코드에 병합되면 메서드에 isPrime 빨간색 밑줄이 표시됩니다. 메서드가 코드에 isPrime 아직 없기 때문입니다.

GitHub Copilot 복잡한 문제를 더 작고 관리하기 쉬운 조각으로 나누는 것을 포함하는 모범 사례를 따르도록 학습됩니다. 이 경우 GitHub Copilot 숫자가 소수인지 확인하기 위해 별도의 isPrime 메서드를 만들 것을 제안합니다.

GitHub Copilot이 준비되면 isPrime 메서드에 대한 코드 조각을 제안할 것입니다. addPrimeNumbersInNumericList 메서드 아래에 빈 줄을 입력하면 GitHub Copilot 사용할 수 있는 isPrime 메서드를 제안합니다.

Visual Studio Code 편집기의 스크린샷에서는 addPrimeNumbersInNumericList 메서드 다음에 나타나는 isPrime 도우미 메서드에 대한 고스트 텍스트 제안을 보여줍니다.

고스트 텍스트 제안은 코드 조각을 제공하여 개발 프로세스를 가속화합니다. 그러나 제안이 필요한 것이 아니라면 어떨까요? GitHub Copilot 고스트 텍스트 제안을 관리하기 위한 인터페이스를 제공합니다.

고스트 텍스트 제안 관리

GitHub Copilot 고스트 텍스트 완성을 제안할 때 제안을 관리하기 위한 인터페이스도 제공합니다. 제안을 수락하거나, 다른 제안을 검토하거나, 제안을 해제할 수 있습니다.

제안된 자동 완성 위에 마우스 포인터를 가져가면 제안을 관리하기 위한 몇 가지 옵션이 표시됩니다.

수락, 단어 수락, 탐색, 추가 옵션이 포함된 고스트 텍스트 제안 관리 도구 모음을 보여주는 Visual Studio Code 편집기의 스크린샷.

제안을 관리하기 위한 기본 인터페이스에는 다음 옵션이 포함됩니다.

  • 수락을 선택하여 제안(전체)을 수락합니다. Tab 키를 눌러 제안을 수락할 수도 있습니다.
  • Accept Word 선택하여 제안을 부분적으로 수락합니다. 오른쪽 화살표 키를 눌러 제안을 부분적으로 수락할 Ctrl + 수도 있습니다.
  • 선택 > 또는 <하여 대체 제안을 봅니다. 또는 Alt + ] 키를 눌러 Alt + [ 대체 제안을 볼 수도 있습니다.

Accept Word 옵션을 선택하면 제안의 다음 word 수락됩니다. 이 기능은 제안의 일부를 수락한 다음 사용자 고유의 코드를 계속 입력하려는 경우에 유용합니다. 예를 들어 메서드 제안의 첫 번째 단어를 수락할 isPrime 수 있습니다.

원하는 만큼 제안을 수락한 후에는 Word 수락을 반복적으로 선택합니다.

Word 수락 단추 오른쪽에 있는 줄임표(...) 아이콘을 선택하면 줄 수락항상 도구 모음 표시 등의 추가 옵션이 제공됩니다.

[항상 표시 도구 모음] 옵션을 선택하면 바로 가기 키를 사용하여 고스트 텍스트 제안을 관리할 때 도구 모음이 계속 표시됩니다. Open Completions 패널 옵션을 선택하면 GitHub Copilot 완료 패널이 열립니다.

비고

제안의 전체 줄을 수락하려면 명령에 대한 editor.action.inlineSuggest.acceptNextLine 사용자 지정 바로 가기 키를 구성해야 합니다. 이 옵션은 도구 모음에서 기본적으로 사용할 수 없습니다.

주석에서 코드 제안 생성

GitHub Copilot 코드에 따라 자동 완성을 제안하는 것 외에도 코드 주석을 사용하여 코드 조각을 제안할 수 있습니다. 자연어 구를 사용하여 만들려는 코드를 설명합니다. 이렇게 하면 GitHub Copilot 특정 요구 사항을 충족하는 자동 완성 제안을 제안할 수 있습니다. 예를 들어 계산에 사용할 알고리즘의 형식이나 클래스에 추가할 메서드와 속성을 지정할 수 있습니다.

소수 예제로 돌아가 보겠습니다. 이 시점에서 다음 코드가 있습니다.

int addPrimeNumbersInNumericList(List<int> numbers)
{
    int sum = 0;
    foreach (int number in numbers)
    {
        if (IsPrime(number))
        {
            sum += number;
        }
    }
    return sum;
}

private bool IsPrime(int number)
{
    if (number <= 1)
    {
        return false;
    }
    for (int i = 2; i <= Math.Sqrt(number); i++)
    {
        if (number % i == 0) return false;
    }
    return true;
}

addPrimeNumbersInNumericListisPrime 메서드가 완료된 것으로 보입니다. 그러나 메서드를 호출 addPrimeNumbersInNumericList 할 때 인수로 사용할 수 있는 숫자 목록이 여전히 필요합니다. 원하는 숫자 목록을 설명하는 메모를 작성할 수 있습니다. 예를 들어 1에서 1000까지의 100개의 난수 목록입니다.

주석 입력을 시작하면 GitHub Copilot 주석을 완성하는 자동 완성을 제안합니다. GitHub Copilot 주변 코드를 사용하여 제안을 개선합니다. 예를 들어 주석 // create 입력을 시작하는 경우 GitHub Copilot 주변 코드를 사용하여 만들려는 항목을 예측합니다. 이 경우 GitHub Copilot addPrimeNumbersInNumericList 메서드를 사용하여 a list of numbers 만들려는 것을 예측합니다.

'// create a list of numbers'를 위한 고스트 텍스트 제안을 보여주는 Visual Studio Code 편집기의 스크린샷

메모를 계속 작성하면 GitHub Copilot 자동 완성 제안을 업데이트합니다. 제안을 수락할 준비가 되면 수락 을 선택하거나 Tab 키를 누릅니다.

주석 후에 새 코드 줄을 만들면 GitHub Copilot 주석 및 기존 코드에 따라 코드 조각을 생성하기 시작합니다.

 위의 주석을 기반으로 첫 번째 코드 줄에 대한 고스트 텍스트 제안을 보여 주는 Visual Studio Code 편집기의 스크린샷.

표시되는 각 제안을 수락합니다. GitHub Copilot이 작업을 완료하지 못하면 수락할 다른 제안이 생성됩니다.

코드 조각이 완료된 후 새 코드 줄을 입력하면 GitHub Copilot 코드 프로젝트의 요구 사항에 따라 다른 자동 완성 제안을 생성합니다.

요약

고스트 텍스트 제안 및 다음 편집 제안을 사용하면 코드를 보다 효율적이고 정확하게 작성할 수 있습니다. 고스트 텍스트 제안은 입력할 때 커서 위치에 흐리게 표시된 텍스트로 표시됩니다. 다음 편집 제안은 최근 변경 내용에 따라 다음 편집의 위치와 내용을 예측합니다. 부분 또는 전체 코드 줄, 부분 또는 전체 코드 주석 또는 빈 코드 줄을 입력하여 고스트 텍스트 제안을 생성할 수 있습니다. Tab 키를 눌러 제안을 수락하거나 Esc 키를 눌러 제안을 해제할 수 있습니다. 제안을 마우스로 가리킬 때 표시되는 도구 모음을 사용하여 제안을 관리할 수 있습니다. 도구 모음을 사용하면 대체 제안을 검토하거나, 제안을 수락하거나, 한 단어의 제안을 수락하거나, GitHub Copilot 완료 패널을 열어 더 많은 제안을 볼 수 있습니다.