2025년 2월 (버전 1.98)
업데이트 1.98.1: 이 업데이트는 다음 이슈를 해결합니다.
업데이트 1.98.2: 이 업데이트는 다음 이슈를 해결합니다.
다운로드: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2025년 2월 릴리스에 오신 것을 환영합니다. 이번 버전에는 여러분이 좋아하시기를 바라는 많은 업데이트가 포함되어 있습니다. 주요 내용은 다음과 같습니다.
- 다음 편집 제안 (미리 보기)의 축소 모드 - Copilot이 다음에 편집할 가능성이 높은 내용을 예측합니다.
- 에이전트 모드 (미리 보기) - Copilot이 작업을 자율적으로 완료합니다.
- Copilot 편집에 대한 노트북 지원 - 노트북 편집 작업을 빠르게 반복할 수 있습니다.
- Copilot Vision - 채팅 프롬프트에 이미지를 첨부하고 상호 작용합니다.
- 코드베이스 검색 - Copilot이 채팅 프롬프트에 대한 관련 파일을 찾도록 합니다.
- 터미널 IntelliSense (미리 보기) - 터미널에 대한 풍부한 완성 지원.
- 참조 미리 보기 끌어서 놓기 지원 - 참조 미리 보기를 새 편집기에서 빠르게 엽니다.
- Linux 사용자 지정 제목 표시줄 - Linux용 사용자 지정 제목 표시줄 지원이 기본적으로 활성화됩니다.
- 해결되지 않은 진단 (미리 보기) - 해결되지 않은 진단으로 커밋할 때 프롬프트가 표시됩니다.
- 소스 제어에서 소프트 삭제 - 추적되지 않은 파일을 삭제하는 대신 휴지통으로 이동합니다.
- 사용자 지정 지침 GA - 사용자 지정 지침을 사용하여 Copilot을 필요에 맞게 조정합니다.
온라인에서 릴리스 노트를 읽으려면 code.visualstudio.com의 업데이트로 이동하세요. Insiders: 새로운 기능을 가능한 한 빨리 사용해 보고 싶으신가요? 야간 빌드인 Insiders를 다운로드하여 최신 업데이트를 사용할 수 있을 때 즉시 사용해 볼 수 있습니다.
GitHub Copilot
Copilot 기능은 일반적으로 설정을 통해 활성화 및 구성되는 다양한 초기 액세스 단계를 거칠 수 있습니다.
| 단계 | 설명 |
|---|---|
| 실험적 | 기능은 아직 개발 중이며 일반 사용 준비가 되지 않았습니다. 실험적 기능( @tag:experimental)을 확인하세요. |
| 미리 보기 | 기능은 아직 다듬는 중이지만 사용할 수 있습니다. 피드백을 환영합니다. 미리 보기 기능( @tag:preview)을 확인하세요. |
| 안정 | 기능은 일반 사용 준비가 되었습니다. |
Copilot 편집
에이전트 모드 개선 (실험적)
지난달, VS Code Insiders에서 Copilot 편집을 위한 에이전트 모드를 소개했습니다. 에이전트 모드에서는 Copilot이 작업 완료를 위해 워크스페이스에서 관련 컨텍스트를 자동으로 검색하고, 파일을 편집하고, 오류를 확인하고, (권한 부여 시) 터미널 명령을 실행할 수 있습니다.
참고: 에이전트 모드는 현재 VS Code Insiders에서 사용할 수 있으며, **VS Code Stable**에서도 점진적으로 배포를 시작했습니다. 에이전트 모드가 활성화되면 Copilot 편집 보기에서 모드 드롭다운이 표시됩니다. **에이전트**를 선택하기만 하면 됩니다.
이번 달에는 도구 사용 UX를 여러 면에서 개선했습니다.
- 터미널 명령이 인라인으로 표시되어 실행된 명령을 추적할 수 있습니다.
- 실행하기 전에 채팅 응답에서 제안된 터미널 명령을 편집할 수 있습니다.
- 터미널 명령은 ⌘Enter(Windows, Linux Ctrl+Enter) 바로 가기를 사용하여 확인할 수 있습니다.
에이전트 모드는 코드베이스에서 관련 컨텍스트를 자율적으로 검색합니다. 메시지를 확장하여 어떤 검색 결과가 수행되었는지 확인하세요.

또한 에이전트 모드의 프롬프트 및 동작을 여러 면에서 개선했습니다.
- 채팅에서 실행 취소 및 다시 실행 작업은 이제 채팅 응답에서 수행된 마지막 파일 편집을 취소하거나 다시 실행합니다. 이는 에이전트 모드에 유용하며, 전체 채팅 응답을 롤백하지 않고도 모델이 수행한 특정 단계를 취소할 수 있습니다.
- 에이전트 모드는 이제 빌드 작업을 자동으로 실행하거나 지시받은 경우 실행할 수 있습니다. 모델이 예상치 못한 작업을 실행하는 경우 github.copilot.chat.agent.runTasks 설정을 통해 이 기능을 비활성화할 수 있습니다.
Copilot 편집 에이전트 모드에 대해 자세히 알아보거나 에이전트 모드 발표 블로그 게시물을 읽어보세요.
참고: Copilot Business 또는 Enterprise 사용자인 경우, 조직의 관리자가 에이전트 모드를 사용하려면 Copilot "Editor Preview Features" 사용을 선택해야 합니다.
Copilot 편집에 대한 노트북 지원 (미리 보기)
VS Code Insiders에서 미리 보기 기능으로 Copilot 편집에 대한 노트북 지원을 도입합니다. 이제 코드 파일 편집과 동일한 직관적인 경험으로 Copilot을 사용하여 노트북 파일을 편집할 수 있습니다. 처음부터 새 노트북을 만들고, 여러 셀에 걸쳐 콘텐츠를 수정하고, 셀을 삽입 및 삭제하고, 셀 유형을 변경할 수 있습니다. 이 미리 보기 기능은 데이터 과학 또는 문서 노트북 작업 시 원활한 워크플로우를 제공합니다.
참고: 이 기능은 현재 GitHub Copilot Chat의 미리 보기 버전이 포함된 VS Code Insiders에서만 사용할 수 있습니다. 향후 릴리스에서 VS Code Stable로 제공하기 전에 경험을 계속 개선할 것입니다.
개선된 편집기 통합
Copilot 편집과 코드 및 노트북 편집기 통합을 다듬었습니다.
- 변경 사항이 적용되는 동안 더 이상 스크롤할 필요가 없습니다. 뷰포트가 그대로 유지되어 변경 사항에 집중하기가 더 쉬워집니다.
- 편집 검토 작업을 "수락"에서 "유지"로, "취소"에서 "실행 취소"로 변경하여 실제 작업을 더 잘 반영하도록 했습니다. Copilot 편집에 대한 변경 사항은 실시간으로 적용되고 생성되는 대로 저장되며 사용자가 유지하거나 실행 취소할 수 있습니다.
- 파일을 유지하거나 실행 취소한 후 다음 파일이 자동으로 표시됩니다.
동영상은 편집이 발생하는 대로 적용되고 저장되는 방식을 보여줍니다. 라이브 미리 보기가 업데이트되고 사용자는 변경 사항을 "유지"하기로 결정합니다. 실행 취소 및 추가 수정도 여전히 가능합니다.
새롭게 단장된 UI
Copilot 편집과 Copilot Chat의 통합을 준비하기 위해 Copilot 편집에 변화를 주었습니다. 첨부되었지만 아직 전송되지 않은 파일은 이제 일반 채팅 첨부 파일로 렌더링됩니다. AI로 수정된 파일만 채팅 입력 부분 위에 있는 수정된 파일 목록에 추가됩니다.
chat.renderRelatedFiles 설정을 사용하여 관련 파일에 대한 제안을 받을 수 있습니다. 관련 파일 제안은 채팅 첨부 파일 아래에 렌더링됩니다.

Copilot 편집 제한 제거
이전에는 Copilot 편집에 프롬프트당 최대 10개의 파일을 첨부할 수 있었습니다. 이번 릴리스에서는 이 제한을 제거했습니다. 또한 10분당 14번의 클라이언트 측 속도 제한도 제거했습니다.
서비스 측 사용 속도 제한은 여전히 적용됩니다.
사용자 지정 지침 일반적으로 사용 가능
설정: github.copilot.chat.codeGeneration.useInstructionFiles
사용자 지정 지침을 통해 GitHub Copilot을 사용자와 팀의 작업 방식에 맞게 채팅 응답 및 코드 제안을 제공하도록 조정할 수 있습니다. 워크스페이스의 .github/copilot-instructions.md 파일에 Markdown 형식으로 특정 요구 사항을 설명합니다.
이번 마일스톤에서는 .github/copilot-instructions.md를 사용한 사용자 지정 지침을 일반적으로 사용할 수 있도록 합니다. VS Code 설정 github.copilot.chat.codeGeneration.useInstructionFiles이 활성화되어 있는지 확인하십시오. 그러면 Copilot이 응답을 생성할 때 이러한 지침을 사용합니다.
Copilot에서 사용자 지정 지침에 대해 자세히 알아보세요.
채팅에서 더 원활한 인증 흐름
GitHub 리포지토리에서 소스 코드를 호스팅하는 경우 고급 코드 검색, @github 채팅 참여자 등 여러 기능을 활용할 수 있습니다.
그러나 개인 GitHub 리포지토리의 경우 VS Code는 GitHub에서 리포지토리를 상호 작용할 수 있는 권한이 필요합니다. 한동안 이는 모달 대화 상자가 특정 기능을 호출할 때 표시되는 일반적인 VS Code 인증 흐름으로 제시되었습니다(예: @workspace 또는 @github에 질문하거나 #codebase 도구 사용).
이 경험을 더 원활하게 만들기 위해 채팅에서 이 확인을 도입했습니다.

모달 대화 상자보다 덜 거슬릴 뿐만 아니라 새로운 기능도 있습니다.
- 승인: 이전과 같이 일반 인증 흐름(모달 통해)으로 진행됩니다.
- 지금 아님: VS Code는 선택 사항을 기억하고 다음 VS Code 창 세션까지 다시 묻지 않습니다.
@github과 같이 해당 기능을 사용하려면 추가 권한이 필요한 경우를 제외하고는 예외가 없습니다. - 다시 묻지 않음: VS Code는 선택 사항을 기억하고 github.copilot.advanced.authPermissions 설정을 통해 유지합니다. 이 추가 권한이 필요한 모든 기능은 실패합니다.
이 확인은 Copilot(서비스)이 리포지토리에 액세스하는 것을 확인하거나 거부하지 않는다는 점에 유의하는 것이 중요합니다. 이것은 VS Code의 Copilot 경험이 인증되는 방식일 뿐입니다. Copilot이 무엇에 액세스할 수 있는지 구성하려면 콘텐츠 제외에 대한 설명서를 읽으세요.
Copilot 채팅에서 더 고급 코드베이스 검색
설정: github.copilot.chat.codesearch.enabled
Copilot 채팅 쿼리에 #codebase를 추가하면 Copilot이 채팅 프롬프트에 대한 관련 코드를 워크스페이스에서 찾는 데 도움이 됩니다. #codebase는 이제 텍스트 검색 및 파일 검색과 같은 도구를 실행하여 워크스페이스의 추가 컨텍스트를 가져올 수 있습니다.
이 동작을 활성화하려면 github.copilot.chat.codesearch.enabled을 설정하십시오. 도구의 전체 목록은 다음과 같습니다.
- 임베딩 기반 의미론적 검색
- 텍스트 검색
- 파일 검색
- Git 수정된 파일
- 프로젝트 구조
- 파일 읽기
- 디렉토리 읽기
- 워크스페이스 기호 검색
채팅 컨텍스트로 문제 첨부
워크스페이스의 코드를 수정하거나 다른 문제를 해결하는 데 도움이 되도록 이제 문제 패널의 문제를 채팅에 프롬프트의 컨텍스트로 첨부할 수 있습니다.
문제 패널에서 채팅 보기로 항목을 드래그하거나, 프롬프트에 #problems를 입력하거나, 클립 모양 📎 버튼을 선택하세요. 특정 문제, 파일의 모든 문제 또는 코드베이스의 모든 파일을 첨부할 수 있습니다.
폴더를 컨텍스트로 첨부
이전에는 탐색기 보기에서 끌어서 놓아 폴더를 컨텍스트로 첨부할 수 있었습니다. 이제 클립 모양 📎 아이콘을 선택하거나 채팅 프롬프트에 #folder: 뒤에 폴더 이름을 입력하여 폴더를 첨부할 수도 있습니다.
다음 편집 제안 (미리 보기)의 축소 모드
설정:
NES에 축소 모드를 추가했습니다. 이 모드를 활성화하면 편집기의 왼쪽 여백에 NES 제안 표시기만 표시됩니다. 코드 제안 자체는 Tab을 눌러 탐색할 때까지 표시되지 않습니다. 제안이 수락되지 않는 한 연속 제안이 즉시 표시됩니다.
축소 모드는 기본적으로 비활성화되어 있으며, editor.inlineSuggest.edits.showCollapsed을 구성하여 활성화하거나 NES 여백 표시기 메뉴에서 활성화 또는 비활성화할 수 있습니다.

완성 모델 변경
Copilot Chat 및 Copilot 편집에 대한 언어 모델을 변경할 수 있었으며, 이제 인라인 제안에 대한 모델도 변경할 수 있습니다.
또는 명령 팔레트의 완성 모델 변경 명령이나 제목 표시줄의 Copilot 메뉴에서 코드 완성 구성 항목을 통해 코드 완성에 사용되는 모델을 변경할 수 있습니다.
참고: 사용 가능한 모델 목록은 시간이 지남에 따라 변경될 수 있습니다. Copilot Business 또는 Enterprise 사용자이신 경우, 관리자는 GitHub.com의 Copilot 정책 설정에서
Editor Preview Features를 선택하여 조직에 특정 모델을 사용하도록 설정해야 합니다.
모델 가용성
이번 릴리스에서는 Copilot 사용 시 선택할 수 있는 모델이 더 추가되었습니다. Visual Studio Code 및 github.com 채팅의 모델 선택기에서 다음 모델을 사용할 수 있습니다.
-
GPT 4.5 (미리 보기): OpenAI의 최신 모델인 GPT-4.5가 Copilot Enterprise 사용자에게 GitHub Copilot Chat에서 제공됩니다. GPT-4.5는 직관, 작문 스타일 및 폭넓은 지식에 대한 고급 기능을 갖춘 대규모 언어 모델입니다. GitHub 블로그 게시물에서 GPT-4.5 모델 가용성에 대해 자세히 알아보세요.
-
Claude 3.7 Sonnet (미리 보기): Claude 3.7 Sonnet은 모든 유료 Copilot 플랜 고객에게 제공됩니다. 이 새로운 Sonnet 모델은 Copilot에서 생각하는 모드와 생각하지 않는 모드를 모두 지원합니다. 초기 테스트에서 에이전트 시나리오에서 특히 강력한 개선 사항을 확인했습니다. GitHub 블로그 게시물에서 Claude 3.7 Sonnet 모델 가용성에 대해 자세히 알아보세요.
Copilot Vision (미리 보기)
이번 버전의 Copilot Chat에 종단 간 비전 지원을 빠르게 배포하고 있습니다. 이를 통해 채팅 프롬프트에 이미지를 첨부하고 이미지와 상호 작용할 수 있습니다. 예를 들어, 디버깅 중 오류가 발생하면 VS Code의 스크린샷을 첨부하고 Copilot에 문제 해결을 요청할 수 있습니다. UI 목업을 첨부하고 Copilot이 목업을 구현하기 위한 HTML 및 CSS를 제공하도록 할 수도 있습니다.

이미지를 여러 가지 방법으로 첨부할 수 있습니다.
- 운영 체제 또는 탐색기 보기에서 이미지를 끌어서 놓기
- 클립보드에서 이미지를 붙여넣기
- VS Code 창 스크린샷 첨부 (클립 모양 📎 버튼 > 창 스크린샷 선택)
선택한 모델이 현재 해당 파일 형식을 처리할 수 없는 경우 경고가 표시됩니다. 현재 지원되는 유일한 모델은 GPT 4o이지만, Claude 3.5 Sonnet 및 Gemini 2.0 Flash를 사용한 이미지 첨부에 대한 지원도 곧 제공될 예정입니다. 현재 지원되는 이미지 형식은 JPEG/JPG, PNG, GIF 및 WEBP입니다.
Copilot 상태 개요 (실험적)
설정: chat.experimental.statusIndicator.enabled
Copilot 상태 및 주요 편집기 설정에 대한 빠른 개요를 제공하는 새로운 중앙 집중식 Copilot 상태 개요를 실험하고 있습니다.
- Quota 정보 ( GitHub Copilot 무료 사용자)
- 코드 완성 등 편집기 관련 설정
- 다른 Copilot 기능을 사용하는 데 유용한 키보드 바로 가기
이 Copilot 상태 개요는 상태 표시줄의 Copilot 아이콘을 통해 액세스할 수 있습니다.

chat.experimental.statusIndicator.enabled 설정을 사용하여 Copilot 상태 개요를 활성화합니다.
TypeScript 컨텍스트 인라인 완성 (실험적)
설정: chat.languageContext.typescript.enabled
TypeScript 파일에 대한 인라인 완성 및 /fix 명령의 향상된 컨텍스트를 실험하고 있습니다. 이 실험은 현재 Insiders 릴리스로 제한되며 chat.languageContext.typescript.enabled 설정을 사용하여 활성화할 수 있습니다.
풀 요청 제목 및 설명에 대한 사용자 지정 지침
설정 github.copilot.chat.pullRequestDescriptionGeneration.instructions을(를) 사용하여 풀 요청 제목 및 설명을 생성하기 위한 사용자 지정 지침을 제공할 수 있습니다. 설정을 워크스페이스의 파일로 가리키거나 설정에 직접 지침을 제공할 수 있습니다. VS Code에서 Copilot 사용자 지정을 사용하는 방법에 대한 자세한 내용을 확인하세요.
다음 샘플은 설정에 사용자 지정 지침을 직접 제공하는 방법을 보여줍니다.
{
"github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
{
"text": "Prefix every PR title with an emoji."
}
]
}
제목 및 설명 생성을 위해서는 GitHub Pull Requests 확장이 설치되어 있어야 합니다.
접근성
Copilot 편집 접근성
Copilot 편집의 접근성을 크게 향상시켰습니다.
- 수정된 파일 및 변경된 영역(삽입, 수정, 삭제)에 대한 오디오 신호가 추가되었습니다.
- 접근 가능한 diff 뷰어가 수정된 파일에 대해 제공됩니다. diff 편집기와 마찬가지로, F7을 선택하여 활성화할 수 있습니다.
activeEditorState 창 제목 변수
새로운 window.title 변수 activeEditorState를 통해 수정 상태, 문제 수, 화면 읽기 프로그램 사용자를 위한 보류 중인 Copilot 편집이 있는 파일과 같은 편집기 정보를 표시할 수 있습니다. 화면 읽기 프로그램 최적화 모드에서는 기본적으로 추가되며 accessibility.windowTitleOptimized로 비활성화할 수 있습니다.
워크벤치
Linux 사용자 지정 제목 표시줄
Linux에서 사용자 지정 제목 표시줄이 기본적으로 활성화되었습니다. 사용자 지정 제목 표시줄을 사용하면 레이아웃 컨트롤, Copilot 메뉴 등에 액세스할 수 있습니다.

사용자 지정 제목 컨텍스트 메뉴에서 또는 window.titleBarStyle을 native로 구성하여 언제든지 기본 제목 장식으로 되돌릴 수 있습니다.

이 경험에 대한 지속적인 피드백을 환영하며, 기존 피드백을 바탕으로 향후 마일스톤을 개선하기 위해 이미 노력하고 있습니다.
보조 사이드바 보기용 레이블 사용
패널 영역과 유사하게 보조 사이드바의 보기 모양을 변경하여 아이콘 대신 레이블을 표시하도록 결정했습니다. 이를 통해 Copilot 편집 및 Copilot 채팅 보기와 같이 서로 다른 보기를 더 쉽게 구별할 수 있습니다. workbench.secondarySideBar.showLabels을 구성하여 언제든지 아이콘 표시로 되돌릴 수 있습니다.

새로운 설정 편집기 키 일치 알고리즘 (미리 보기)
설정: workbench.settings.useWeightedKeySearch
더 관련성 높은 키 일치를 우선시하는 새로운 설정 편집기 검색 알고리즘을 추가했습니다. 검색 알고리즘은 이전보다 더 많은 방식으로 설정 ID 및 레이블과 일치시키려고 시도하지만, 결과도 필터링하여 가장 일치하는 유형만 표시합니다.
workbench.settings.useWeightedKeySearch 설정을 활성화하여 미리 보기 기능을 사용해 보세요.
테마: Light Pink (vscode.dev에서 미리 보기)
간단한 파일 선택기에서 점 파일 숨기기 옵션
간단한 파일 선택기(원격에 연결되어 있거나 files.simpleDialog.enable을 사용하는 경우)를 사용할 때 이제 **점 파일 표시/숨기기** 버튼을 사용하여 점 파일을 숨길 수 있습니다.

편집기
참조 미리 보기 끌어서 놓기 지원
미리 보기 보기가 이제 끌어서 놓기를 지원합니다. **참조 미리 보기**, **구현 미리 보기** 또는 기타 미리 보기 명령을 호출하고 트리에서 항목을 끌어 별도의 편집기로 열 수 있습니다.
테마: GitHub Light Colorblind (Beta) (vscode.dev에서 미리 보기)
발생 횟수 강조 표시 지연
편집기 내 발생 횟수 강조 표시 지연이 기본적으로 0으로 설정되었습니다. 이로 인해 전반적으로 더 반응성이 뛰어난 편집기 느낌을 얻을 수 있습니다. editor.occurrencesHighlightDelay 설정을 사용하여 여전히 지연 시간을 제어할 수 있습니다.
소스 제어
업데이트된 보기 제목
소스 제어 보기에서 **소스 제어 그래프** 보기를 추가했을 때, 소스 제어 보기의 섹션 제목 중복("소스 제어 리포지토리", "소스 제어", "소스 제어 그래프")이 강조되었습니다. 이번 마일스톤에서는 보기 제목을 더 짧고 중복되지 않도록 "리포지토리", "변경 사항", "그래프"로 다시 검토했습니다.
추적되지 않은 변경 사항 버리기 개선
설정: git.discardUntrackedChangesToTrash
그동안 추적되지 않은 파일을 버리면 VS Code에 파일이 영구적으로 삭제된다는 명확한 모달 대화 상자가 표시됨에도 불구하고 파일이 영구적으로 삭제되어 데이터 손실이 발생했다는 여러 보고를 받았습니다.
이번 마일스톤부터 추적되지 않은 파일을 버리면 해당 파일이 가능한 경우 휴지통/재활용함으로 이동되어 쉽게 복구할 수 있습니다. git.discardUntrackedChangesToTrash 설정을 사용하여 이 기능을 비활성화할 수 있습니다.

진단 커밋 후크 (실험적)
설정:
이번 마일스톤에서는 변경된 파일에 대해 해결되지 않은 진단이 있는지 묻는 새로운 커밋 후크를 도입했습니다. 현재 이것은 git.diagnosticsCommitHook.Enabled 설정을 사용하여 활성화할 수 있는 실험적 기능입니다.
기본적으로 커밋 후크는 모든 오류 수준 진단에 대해 묻지만, 진단 소스 및 수준은 git.diagnosticsCommitHook.Sources 설정을 사용하여 사용자 지정할 수 있습니다. 사용해 보고 피드백을 알려주세요.

노트북
인라인 노트북 diff 뷰 (실험적)
설정: notebook.diff.experimental.toggleInline
이제 노트북에 대한 인라인 diff 뷰를 활성화할 수 있습니다. 이 기능은 기존의 사이드바 비교가 아닌 단일 인라인 뷰에서 노트북 셀 내의 변경 사항을 볼 수 있게 해줍니다.
이 기능을 사용하려면 notebook.diff.experimental.toggleInline을 true로 설정하세요. 그런 다음 오른쪽 상단 모서리에 있는 편집기 메뉴를 사용하여 diff 뷰를 인라인으로 전환할 수 있습니다.
노트북 인라인 값 호버
노트북 인라인 값의 장식은 이제 뷰포트 너비에 맞게 잘리고 전체 값을 표시하는 풍부한 호버가 있어 공백 서식을 유지합니다. 이렇게 하면 데이터 프레임과 같은 변수의 모양이 유지되어 값을 한눈에 더 쉽게 읽을 수 있습니다.

터미널 IntelliSense (미리 보기)
설정: terminal.integrated.suggest.enabled
completion spec(예: git) 추가, 더 나은 제안을 위한 명령줄 구문 분석 개선, 파일 및 폴더 완료 기능 향상을 통해 bash, zsh, fish 및 PowerShell 전반에 걸쳐 터미널 셸 완료 기능을 크게 개선했습니다. terminal.integrated.suggest.enabled으로 이 기능을 활성화하십시오.
향상된 Fig 완료 지원
지능형 CLI 완료를 위해 Fig completion spec을 활용합니다. 이전에는 이러한 항목이 소수였지만 이번 릴리스에서는 VS Code와 함께 제공되는 목록에 다음 CLI를 추가했습니다.
- 기본 도구:
cat,chmod,chown,cp,curl,df,du,echo,find,grep,head,less,ls,mkdir,more,mv,pwd,rm,rmdir,tail,top,touch,uname - 프로세스 도구:
kill,killall,ps - 패키지 관리자:
apt,brew - Node.js 생태계:
node,npm,npx,nvm,pnpm,yarn - SCM, 언어, 편집기:
git,nano,python,python3,vim - 네트워크:
scp,ssh,wget
새로운 spec 외에도 이제 요청 시 명령을 실행하여 완료를 동적으로 생성하는 *생성기*도 지원합니다. 예를 들어, git checkout에 대한 모든 브랜치를 표시하는 것입니다.
테마: Sapphire (vscode.dev에서 미리 보기: vscode.dev)
백그라운드에서는 git --no-optional-locks branch -a --no-color --sort=-committerdate를 실행하여 브랜치 목록을 가져온 다음 완료를 위해 처리합니다. 유사한 접근 방식을 사용하여 태그도 가져옵니다.
구성 가능한 빠른 제안
설정: terminal.integrated.suggest.quickSuggestions
편집기와 마찬가지로, *빠른 제안*은 트리거 문자(예: \ 또는 -)가 사용될 때 표시되는 것과 달리, 입력할 때 IntelliSense를 자동으로 표시하는 것입니다. 새로운 terminal.integrated.suggest.quickSuggestions 설정은 빠른 제안이 표시될 시점을 정밀하게 제어할 수 있습니다.
기본값은 명령 및 인수에 대한 빠른 제안을 활성화하며, 이제 기본적으로 비활성화되어 경로로 대체됩니다. 경로는 적용되지 않는 경우가 많아 노이즈와 불편함을 유발할 수 있다고 들었습니다. 이것이 기본값입니다.
"terminal.integrated.suggest.quickSuggestions": {
"commands": "on",
"arguments": "on",
"unknown": "off"
}
인라인 제안 감지
설정: terminal.integrated.suggest.inlineSuggestion
지금까지 인라인 제안 감지의 한 가지 문제는 다른 소스의 제안과 경쟁하여 발생한 혼동이었습니다. 특히 셸에서 입력할 때 자주 나타나는 인라인 제안입니다.

이러한 제안은 실제로는 셸 수준 기능(fish/zsh의 자동 제안, pwsh의 예측 등)이며, 특히 IntelliSense와 함께 표시될 때 사용자에게 명확하지 않을 수 있습니다.
IntelliSense 기능은 이러한 인라인 제안을 감지해야 하는데, 이는 이전에 텍스트가 *흐리게* 또는 *이탤릭체* SGR 속성으로 스타일 지정되었는지 여부만 확인하는 간단한 구현을 사용했습니다. 사용자가 스타일을 사용자 지정할 뿐만 아니라 fish 셸도 기본적으로 이러한 스타일을 사용하지 않았기 때문에 이는 불충분하다는 것이 밝혀졌습니다. 이제 명령줄 컨텍스트와 커서 위치를 분석하여 대부분의 경우를 감지합니다.
이 새롭고 향상된 감지를 기반으로, 인라인 제안은 이제 편집기의 작동 방식과 더 가깝게 정렬하고 kstyle(Tab)이 이 경우에 수행할 작업을 더 명확하게 하기 위해 별표 아이콘으로 최상위 옵션으로 표시됩니다.

기본값은 항상 이 제안을 최상위 제안으로 표시하는 것이지만, terminal.integrated.suggest.inlineSuggestion으로 구성할 수 있습니다.
자세한 명령 완료
bash 및 zsh 내장 명령 및 PowerShell 명령에 대한 완료 기능이 더욱 상세해졌으며, 사용 가능한 인수에 대한 세부 정보를 제공합니다. 이 정보는 셸의 설명서 또는 도움말 명령에서 가져옵니다.
bash의 경우 help <command>를 사용하여 기본 설명을 가져옵니다.

zsh의 경우 man zshbuiltins를 사용하여 자세한 설명을 가져옵니다.

PowerShell의 경우 Get-Command의 더 많은 속성이 완료에 표시됩니다.


정렬 개선
명령 완료 기능에 정렬이 개선되었습니다. 특히
- 더 많은 세부 정보가 있는 완료는 일반적으로 덜 상세한 완료보다 위에 표시됩니다.
- 내장 명령은
$PATH의 경로보다 우선합니다.

경우에는 다음과 같은 개선 사항이 있었습니다.
_로 시작하는 경로는 특수 문자를 나타내는 경우가 많고 일반적으로 많이 변경되지 않아야 하므로(예:__init__.py) 페널티를 받습니다.- 구두점은 정렬 시 무시되므로
.으로 시작하는 파일은 다른 파일과 혼합됩니다.

CDPATH 지원
설정: terminal.integrated.suggest.cdPath
$CDPATH 환경 변수는 $PATH와 유사하게 콜론으로 구분된 경로 목록을 포함하는 일반적인 셸 기능으로, 현재 작업 디렉터리에 관계없이 상대 경로처럼 탐색할 수 있도록 합니다. Fish는 실제로 cd 탭 완료에서 CDPATH 항목을 표시합니다.

이제 cd를 사용할 때 $CDPATH 항목을 완료로 표시하는 것을 지원합니다.

이 기능은 Windows(; 구분 기호)에서도 작동하며, 기본값이 절대 경로를 사용하기 때문에 셸이 이 기능을 네이티브로 지원할 필요는 없습니다.

terminal.integrated.suggest.cdPath으로 이 기능을 구성하십시오.
절대 경로
이제 절대 경로를 지원합니다.


별칭 지원
이제 bash, zsh 및 fish에 대한 명령 별칭도 감지되며 새로운 고유 아이콘이 표시됩니다.

옵션 및 플래그 구분
(값이 있는) CLI 옵션과 (없는) 플래그가 이제 다른 아이콘으로 UI에서 구분됩니다.

작업
작업 다시 실행 작업
터미널에 대한 새로운 다시 실행 작업이 있습니다. ⌃⇧R (Windows, Linux Ctrl+Shift+R). 이 작업은 터미널 탭의 인라인 도구 모음과 터미널의 컨텍스트 메뉴에 나타납니다.
디버그
디버그 인라인 값 호버
설정 debug.inlineValues이 활성화된 경우, 인라인 값 장식에 인라인 호버가 있어 긴 값을 한눈에 더 쉽게 읽을 수 있습니다.

언어
TypeScript 5.8
VS Code에 TypeScript 5.8.2가 포함되었습니다. 이 주요 업데이트는 조건부 식의 형식 검사 개선 및 Node의 새로운 --experimental-strip-types 옵션에 맞는 코드를 작성하기 위한 지원과 같은 새로운 언어 개선 사항을 제공합니다. 또한 많은 도구 개선 사항과 버그 수정 사항이 포함되었습니다.
이 업데이트에 대한 자세한 내용은 TypeScript 5.8 릴리스 블로그를 참조하십시오.
원격 개발
원격 개발 확장 프로그램을 사용하면 개발 컨테이너, SSH 또는 원격 터널을 통해 원격 머신 또는 Windows Subsystem for Linux(WSL)를 완전한 기능을 갖춘 개발 환경으로 사용할 수 있습니다.
주요 내용은 다음과 같습니다.
- Linux 레거시 서버 지원 종료
- 프록시 구성 가능성 확장
원격 개발 릴리스 노트에서 이러한 기능에 대해 자세히 알아볼 수 있습니다.
엔터프라이즈 지원
허용된 확장에 대한 여러 줄 지원
이제 Windows 그룹 정책에서 여러 줄 문자열을 사용하여 허용된 확장을 구성할 수 있습니다. 이를 통해 허용된 확장을 더 유연하고 광범위하게 구성할 수 있습니다. 허용된 확장 구성에 대해 자세히 알아보십시오.
확장 프로그램 기여
Python
긴 문자열을 나눌 때 자동 따옴표 삽입
Pylance는 이제 긴 문자열을 나눌 때 원활한 환경을 위해 자동 따옴표 삽입을 지원합니다.
Pylance 메모리 사용량 개선
특히 대규모 작업 공간을 작업할 때 Pylance의 메모리 사용량을 개선하기 위한 몇 가지 최적화가 이루어졌습니다. 이러한 개선은 Pylance의 언어 서버 기능을 지원하는 정적 유형 검사기인 Pyright에 의해 이루어졌습니다.
Python 셸 통합 개선
python.terminal.shellIntegration.enabled을 수정한 후 변경 사항을 적용하기 위해 다시 로드할 필요가 없습니다. 새 터미널을 만들어 Python REPL에서 원하는 변경 사항을 확인하세요.
Windows Git Bash에 대한 올바른 작업 공간 프롬프트
Windows에서 Git Bash를 사용하는 Python 사용자는 이제 터미널 프롬프트에서 올바른 작업 디렉터리를 볼 수 있습니다. 이러한 변경 사항은 pythonTerminalEnvVarActivation 실험에 옵트인한 사용자에게 적용됩니다.
자동 테스트 검색 파일 패턴에 대한 새 설정
이제 python.testing.autoTestDiscoverOnSavePattern 설정에서 glob 패턴을 지정하여 자동 테스트 검색이 발생하는 파일을 구체화할 수 있습니다. 기본값은 **/*.py입니다.
설정.json에서 테스트 디버그 구성을 백업으로 읽기
이제 settings.json과 launch.json 파일 모두에서 테스트 디버그 구성을 찾으므로 이러한 구성을 정의할 수 있는 위치가 확장됩니다.
GitHub 인증
Electron fetch 채택을 통한 향상된 프록시 지원
GitHub 인증 확장 프로그램은 이제 웹 요청을 하기 위해 Electron 버전을 사용합니다. fetch 이것은 특정 프록시 및 방화벽 설정을 가진 사용자에게 도움이 되었습니다. 프록시 설정이 있는 환경에서 실행 중이고 VS Code 내에서 GitHub에 인증할 수 없는 경우 문제를 제기하는 것을 주저하지 마십시오!
확장 프로그램 작성
인증
중요:
AuthenticationForceNewSessionOptions의 이름을AuthenticationGetSessionPresentationOptions로 변경하고 현재는 사용되지 않는AuthenticationForceNewSessionOptions를 남겨둡니다. 기능적 차이는 없으므로 런타임에 호환성을 깨뜨리는 변경 사항은 아니지만, 향후 제거될 예정이므로AuthenticationForceNewSessionOptions대신AuthenticationGetSessionPresentationOptions를 사용하도록 코드를 업데이트해야 합니다.
두 개의 인증 호출 보기
vscode.authentication.getSession(provider, scopes, { createIfNone: options });
vscode.authentication.getSession(provider, scopes, { forceNewSession: options });
createIfNone 및 forceNewSession은 이제 boolean 또는 AuthenticationGetSessionPresentationOptions 중 하나를 받습니다.
/**
* Optional options to be used when calling {@link authentication.getSession} with interactive options `forceNewSession` & `createIfNone`.
*/
export interface AuthenticationGetSessionPresentationOptions {
/**
* An optional message that will be displayed to the user when we ask to re-authenticate. Providing additional context
* as to why you are asking a user to re-authenticate can help increase the odds that they will accept.
*/
detail?: string;
}
이것은 createIfNone에 대한 새로운 추가 기능이지만, forceNewSession에 대한 수정입니다. forceNewSession은 서명이 새 AuthenticationGetSessionPresentationOptions와 동일한 AuthenticationForceNewSessionOptions를 받았습니다.
명시적으로 AuthenticationForceNewSessionOptions를 사용하는 경우, 이 옵션이 사용되지 않도록 표시되어 있으며 향후 버전에서 제거될 예정이므로 AuthenticationGetSessionPresentationOptions로 바꿔야 합니다.
여기서 변경되는 것은 유형뿐이라는 점에 유의하는 것이 중요합니다. 런타임 변경은 없으므로 관점에서 호환성을 깨뜨리는 변경 사항은 아닙니다.
또한 authLearnMore 제안 API가 AuthenticationForceNewSessionOptions에서 AuthenticationGetSessionPresentationOptions로 업데이트되었습니다.
detail 및 learnMore 제안을 활용하는 예는 다음과 같습니다.

스니펫 API 개선
이제 스니펫을 삽입할 때 공백 정규화를 제어할 수 있습니다. 이는 insertSnippet API 및 SnippetTextEdit API에 적용되며 추가 줄의 들여쓰기가 조정되는지 여부를 제어합니다.
const snippet = `This is an indented
snippet`;
// keepWhitespace: false, undefined
function indentedFunctionWithSnippet() {
return `This is an indented
snippet`; // adjusted indentation
}
// keepWhitespace: true
function indentedFunctionWithSnippet() {
return `This is an indented
snippet`; // original indentation
}
제안된 API
텍스트 인코딩
VS Code에서 텍스트 인코딩을 작업하기 위한 새로운 제안 API를 추가했습니다.
구체적으로 이 새로운 API를 통해 다음을 수행할 수 있습니다.
TextDocument의 현재encoding가져오기- 특정
encoding으로TextDocument열기 - 특정
encoding으로string을Uint8Array로 인코딩 - 특정
encoding을 사용하여Uint8Array를string으로 디코딩
시도해 보고 이 GitHub 이슈에서 의견을 알려주세요.
셸 환경
확장은 VS Code 통합 터미널에서 열리는 pwsh, zsh, bash 및 fish 셸의 사용자 현재 활성 셸 환경 정보에 액세스할 수 있습니다. 이는 terminal.integrated.shellIntegration.enabled이 활성화된 경우에만 사용할 수 있습니다.
사용자는 terminal.integrated.shellIntegration.environmentReporting으로 셸 환경 정보 보고 여부를 결정할 수 있습니다.
이 GitHub 이슈에서 시도해 보고 의견을 알려주세요.
엔지니어링
Electron 34 업데이트
이번 마일스톤에서는 Electron 34 업데이트를 안정적인 릴리스 사용자에게 제공합니다. 이 업데이트에는 Chromium 132.0.6834.196 및 Node.js 20.18.2가 포함됩니다. Insiders 빌드에서 자체 호스팅하고 초기 피드백을 제공한 모든 분들께 감사드립니다.
macOS 10.15 지원 종료
VS Code 1.97은 macOS 10.15(macOS Catalina)를 지원하는 마지막 릴리스입니다. 자세한 내용은 FAQ를 참조하십시오.
메모리 누수 disposable의 개발 시간 추적
VS Code는 명시적인 리소스 관리를 위해 disposable 패턴을 사용합니다. 예를 들어 파일을 닫거나 DOM 요소를 정리하거나 이벤트 리스너를 제거하는 데 사용됩니다. 리소스를 해제하지 않으면 메모리가 낭비되고 시간이 지남에 따라 메모리 사용량이 누적됩니다.
우리는 지속적으로 이러한 누수를 추적하고 있으며 이를 감지하기 위한 또 다른 도구를 추가했습니다. FinalizationRegistry API를 활용하여 객체가 가비지 수집되었을 때 알려줍니다. 이러한 객체가 해제되지 않은 disposable을 나타내는 경우 메모리 누수가 있는 것입니다. 이러한 누수는 VS Code 개발자에게 수집 및 표시되어 진행하면서 정리할 수 있습니다.
주요 수정 사항
감사합니다
마지막으로, VS Code 기여자에 대한 진심 어린 감사의 말씀을 전합니다.
이슈 추적
이슈 추적에 대한 기여
- @gjsjohnmurray (John Murray)
- @albertosantini (Alberto Santini)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
풀 리퀘스트
vscode 기여
- @a-stewart (Anthony Stewart): Diff 선택 표시줄은 menu.separatorBackground를 사용해야 하며 menu.border가 아닌 PR #228825
- @bchu1 (Bryan Chu): minimap 헤더 잘못 배치 수정 PR #217581
- @cassidoo (Cassidy Williams): #241903 수정: settingsLayout.ts에 GitHub 재정의 추가 PR #241911
- @cdce8p (Marc Mueller): panelTitleBadge 색상 변수 추가 PR #240645
- @cenviity (Vincent Ging Ho Yim):
editorOptions.ts의 오타 수정 PR #239929 - @cmbrose (Caleb Brose): chat의
newEditSession명령 업데이트하여 입력 프롬프트 받기 PR #241796 - @devm33 (Devraj Mehta): fix: webpack에 대한 외부로 electron 추가 PR #239134
- @dmotte (Motte): terminal.integrated.confirmOnExit 동작 수정 PR #240074
- @dvangonen (Daniil Vangonen): body에서 불필요한 클래스 제거 PR #240633
- @gabritto (Gabriela Araujo Britto): [typescript-language-features] Expandable hover (#_228255) 되돌리기 PR #240011
- @gjsjohnmurray (John Murray)
scm/resourceGroup/context메뉴 명령에 multiselect 공급 (fix #92337) PR #192172scmResourceGroupState컨텍스트 키 추가 (#_192009) PR #194804- SCM - SCM 보기에 더 짧은 제목 PR #230693
- 키보드 단축키 편집기에서 '사용자 키보드 단축키 표시' 옵션 수정 (fix #240068) PR #240085
- '트리거된 중단점 추가...'에 잘못된 '확인' 대문자 (fix #240490) PR #240492
- @hickford (Mickford): "tunnel user show"에서 로그 제공자 PR #240692
- @ihavecoke (ihavecoke): tab_size 설정을 1에서 16 사이로 제한 PR #228957
- @jakebailey (Jake Bailey): 확장 호스트 개발에서 --disable-extensions 유지 PR #240415
- @jamestut (James Nugraha): 토크나이저 초기화 전에 TextModel 제한 계산 PR #240919
- @jeanp413 (Jean Pierre)
- 터미널 분할 보기 disposable 누수 수정 PR #241597
- 깨진 터미널 링크 호버 수정, 내용 위로 호버하기 전에 숨김 PR #241599
- 타임라인 보기 이벤트 리스너 누수 수정 PR #241607
- @KexyBiscuit (Kexy Biscuit a.k.a. るる): powershell-preview snap 감지 허용 PR #240054
- @klaussner (Christian Klaussner): macOS에서 트래픽 라이트 중앙 정렬 수정 PR #212471
- @naman108 (Natha Paquette): 스토리지 URI 문서의 오타 PR #241600
- @nknguyenhc (Nguyen): 확장 세부 정보 콘텐츠가 컨테이너를 벗어남 PR #240134
- @notoriousmango (Seong Min Park)
- Command Center 디버그 런처가 가장 최근에 사용된 구성을 먼저 제공하도록 함 PR #240744
- Markdown이 vscode 로그 출력 채널을 사용하도록 채택 PR #241342
- @pouyakary (Pouya Kary ✨): Feat: 사용자 지정 Minimap 섹션 헤더 마커 감지 RegExp ✨ PR #210271
- @rgrunber (Roland Grunberg): TextEditor API에 adjustWhitespace 노출 PR #234858
- @silamon (Simon Lamon): Diff 편집기:
1 files를1 file로 수정 PR #240092 - @simon-id (simon-id): fix: workbench 검색이 올바른 findMatch 색상 사용 (fix #237909) PR #237910
- @SimonSiefke (Simon Siefke): fix: 설정 표시기 메모리 누수 PR #236417
- @ssigwart (Stephen Sigwart): 들여쓰기 시도 시 예상치 못한 탭 완료 수정 PR #136572
- @SunsetTechuila (Grigory): feat(commands):
insertFinalNewLine추가 PR #241126 - @tcvdh (Thijs van den Heuvel): Fix: 터미널 재사용 전 clear 명령 실행 대기 PR #240970
- @terrymun (Terry Mun-Andersen): fix: CONTRIBUTING.md의 불필요한 백틱 제거 PR #240305
- @tmm1 (Aman Karmani): tsb: 삭제 후 다시 추가된 소스 파일이 다시 생성되지 않는 문제 수정 PR #238409
- @xymopen (xymopen_Official)
- npm 스크립트 러너로 node 추가 PR #236967
- npm 스크립트 러너로 node 추가 (2차) PR #240527
- @zardoy (Vitaly): [Git] 더 나은 성능을 위해 pull 시 git autostash로 마이그레이션 PR #187850
vscode-css-languageservice에 대한 기여
- @GauravB159 (Gaurav Bhagchandani): lab() 및 lch() 색상 미리 보기 추가 PR #306
vscode-eslint 기여
- @edemaine (Erik Demaine): Civet 지원 조사 PR #1965
- @mustevenplay (mustevenplay): TypeScript 구성 파일 감지 추가 PR #1968
vscode-hexeditor에 기여
- @tomilho (Tomás Silva): Hex Compare Selected를 Compare Selected 아래로 이동 PR #561
vscode-jupyter 기여
- @thesuperzapper (Mathew Wicks):
JUPYTER_RUNTIME_DIR및XDG_RUNTIME_DIR읽기 수정 PR #16451
vscode-languageserver-node에 기여
- @MariaSolOs (Maria José Solano)
- @mciccale (Marco Ciccalè Baztán): semaphore.ts의 사소한 오타 PR #1618
- @yf-yang: fix: 일치하지 않는 핸들러 해제 방지 PR #1614
vscode-mypy에 대한 기여
- @DetachHead
- @hamirmahal (Hamir Mahal): fix: CI에서
node12 (사용 중단됨)사용 PR #336 - @ivirabyan (Ivan Virabyan): dmypy 상태 파일 설정 추가 PR #347
vscode-pull-request-github 기여
- @christianvuerings (Christian Vuerings): 사용자 지정 SSH로 GitHub 영구 링크 복사 수정 PR #6669
vscode-python-debugger 기여
- @TCPsoftware (tcpsoft): "args": "${command:pickArgs}"를 기본 디버그 구성으로 설정 PR #548
vscode-vsce 기여
- @mohankumarelec (mohanram): semver 비교 업데이트 PR #1078
- @stevedlawrence (Steve Lawrence): 재현 가능한 .vsix 패키지 허용 PR #1100
debug-adapter-protocol에 기여
- @angelozerr (Angelo): IntelliJ / LSP4IJ DAP 지원 추가 PR #529
- @samisalreadytaken: Squirrel Debugger를 adapters.md에 추가 PR #530
- @SpartanJ (Martín Lucas Golini): tools.md 업데이트하여 새 DAP 클라이언트: ecode 추가 PR #526
- @sssooonnnggg (Song): chore: luau 디버거 추가 PR #516
- @theIDinside (Simon Farre): Midas를 Debug Adapter 목록에 추가, VSCode 포함 PR #528
language-server-protocol 기여
- @ind1go (Ben Cox): 작업 공간 진단에서 오타 PR #2086
- @MariaSolOs (Maria José Solano)
- @MuntasirSZN (Muntasir Mahmud): feat: 서버 목록의 copilot 언어 서버 PR #2107
- @Szasza (Szasza Palmer): 서버 목록에 Wing 언어 서버 추가 PR #2101
- @the-mikedavis (Michael Davis):
$0는 다른 스니펫 구문을 사용하지 않아야 함을 명확히 함 PR #2087 - @yassun7010 (yassun7010): Tombi를 LSP 목록에 추가. PR #2089
python-environment-tools 기여
- @pantheraleo-7:
$VIRTUAL_ENV감지 지원 추가 PR #181