2024년 3월 (버전 1.88)
업데이트 1.88.1: 이 업데이트는 다음 이슈들을 해결합니다.
다운로드: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code의 2024년 3월 릴리스에 오신 것을 환영합니다. 이번 버전에는 여러분이 좋아하시기를 바라는 많은 업데이트가 있으며, 주요 내용은 다음과 같습니다.
- 열린 편집기에 대한 사용자 지정 레이블 - 파일 이름이 같은 편집기를 구별합니다.
- 고정 스크롤 - 동기화된 스크롤로 편집기를 나란히 비교합니다.
- 확장 업데이트 개선 사항 - 다시 로드하지 않고 확장을 다시 시작하고 VS Code 릴리스와 함께 확장을 업데이트합니다.
- 테스트 커버리지 API - VS Code에서 네이티브 코드 커버리지 지원.
- 미니맵 접기 마커 - 미니맵에서 코드 섹션을 쉽게 식별하고 이동합니다.
- 빠른 검색 개선 사항 - 고정 파일 경로 구분 기호 및 구분 기호 버튼.
- 섹션에서 노트북 셀 실행 - 노트북 섹션의 모든 셀을 빠르게 실행합니다.
- Copilot 개선 사항 - 인라인 채팅 UI, 커밋 메시지 및 사용된 참조 개선.
- Python 자동 감지 개선 사항 - Flask 및 Django의 시작 파일 감지, Hatch 환경 검색.
- 미리 보기: 터미널 인라인 채팅 - 터미널에서 직접 Copilot 인라인 채팅 대화를 시작합니다.
온라인에서 릴리스 노트를 읽으려면 code.visualstudio.com의 업데이트로 이동하세요. Insiders: 새로운 기능을 가능한 한 빨리 사용해 보고 싶으신가요? 야간 빌드인 Insiders를 다운로드하여 최신 업데이트를 사용할 수 있을 때 즉시 사용해 볼 수 있습니다.
접근성
음성 녹음 소리
음성 녹음을 위한 새로운 접근성 신호음이 추가되었습니다.
- 음성 녹음 시작 -
accessibility.signals.voiceRecordingStarted설정을 사용하여 구성됩니다. - 음성 녹음 종료 -
accessibility.signals.voiceRecordingStopped설정을 사용하여 구성됩니다.
향상된 diff 편집기 접근성
화면 판독기를 사용하는 경우, diff 편집기가 활성 편집기가 될 때 이제 알림을 받습니다. 이 동작은 accessibility.verbosity.diffEditorActive 설정을 사용하여 비활성화할 수 있습니다.
또한 키보드 사용자를 위한 유용한 명령인 Diff Editor: Switch Side에 대한 정보가 접근성 도움말 대화 상자에 추가되었습니다.
접근성 신호가 이제 diff 편집기의 양쪽에서 작동합니다. 이전에는 수정된 쪽에서만 사용할 수 있었습니다.
액세스 가능한 보기 채팅 코드 블록 명령
액세스 가능한 보기에서 채팅 응답을 검사할 때 이제 채팅 보기에서 사용 가능한 코드 블록 명령 및 키 바인딩을 사용할 수 있습니다.
여기에는 Chat: Insert at Cursor, Chat: Insert into Terminal, Chat: Insert into New File이 포함됩니다.
노트북 셀 aria 레이블 업데이트
이제 노트북 셀의 aria 레이블이 셀이 현재 실행 중인지 또는 실행 대기 중인지 나타내도록 업데이트됩니다.
워크벤치
플로팅 창에서 사용자 지정 편집기 지원
편집기를 플로팅 창으로 여는 지원을 사용자 지정 편집기 및 일반적으로 webview API를 사용하는 모든 편집기로 확장했습니다. 여기에는 마크다운 미리 보기, 브라우저 미리 보기 및 당사의 hex 편집기와 같은 복잡한 사용자 지정 편집기가 포함됩니다.
참고: 기술적 제한으로 인해 webview 기반 편집기를 창 간에 이동하려면 해당 편집기 콘텐츠를 다시 로드해야 합니다. 그러면 이전에 누적된 상태를 복원하는 것은 편집기의 몫입니다. 일부 경우 편집기를 처음 열었을 때처럼 상태가 재설정될 수 있습니다.
열린 편집기에 대한 사용자 지정 레이블
이제 편집기 탭 및 열린 편집기 보기에 대한 표시 레이블을 사용자 지정할 수 있습니다. 이 기능은 이름이 같은 파일의 편집기를 구별하는 데 유용할 수 있습니다.
workbench.editor.customLabels.patterns 설정 아래에 항목을 추가하여 이러한 레이블을 선호도에 맞게 조정할 수 있습니다. 각 항목에는 파일 경로와 일치하는 glob 패턴과 편집기 탭의 새 이름을 정의하는 템플릿이 포함되어야 합니다. 이 사용자 지정은 파일의 경로가 지정된 패턴과 일치하는 경우에만 적용됩니다. 패턴이 일치하는지 여부는 상대 또는 절대 파일 경로 패턴으로 정의되었는지에 따라 달라집니다.
템플릿에는 ${filename}, ${extname}, ${dirname}, ${dirname(N)}와 같은 변수를 포함할 수 있으며, 이는 파일 경로의 값으로 동적으로 대체됩니다.
이러한 사용자 지정 레이블을 활성화하거나 비활성화하려면 workbench.editor.customLabels.enabled 설정을 사용합니다. 이를 통해 사용자 지정 패턴을 제거하지 않고도 언제든지 원래 편집기 이름으로 전환할 수 있습니다.
고정 스크롤
이제 View: Toggle Locked Scrolling Across Editors 명령을 사용하여 모든 열린 편집기 간에 스크롤을 동기화할 수 있습니다. 즉, 한 편집기에서 스크롤하면 다른 모든 편집기가 동일한 양으로 스크롤되어 모든 것이 정렬됩니다. 이 기능은 파일을 나란히 비교해야 하는 경우 유용할 수 있습니다.
고정 스크롤을 활성화 및 비활성화하는 데 더 많은 제어를 원하면 특정 키 바인딩을 누르고 있는 동안에만 스크롤 동기화를 활성화하도록 선택할 수 있습니다. workbench.action.holdLockedScrolling 명령에 대한 키보드 바로 가기를 설정하면 필요할 때 언제든지 편집기 간 스크롤을 일시적으로 고정할 수 있습니다.
하단에 활동 표시줄
이전에는 사이드바 상단으로 활동 표시줄을 이동하는 옵션을 소개했습니다. 이제 활동 표시줄을 하단으로 이동할 수도 있습니다. 이렇게 하려면 workbench.activityBar.location 설정을 bottom으로 변경합니다.
또한 상단에 배치된 활동 표시줄의 모양과 느낌을 개선하여 나머지 인터페이스와 잘 맞도록 했습니다.

검색 편집기 단일 클릭 동작
이제 search.searchEditor.singleClickBehaviour 설정을 구성하여 검색 편집기 항목을 단일 클릭할 때 발생하는 작업을 결정할 수 있습니다. 현재 이 설정은 "Peek Definition"만 지원합니다.
빠른 검색 개선 사항
고정 파일 경로
빠른 검색에서 파일 이름 구분 기호를 고정하여 검색 결과가 어떤 파일과 관련되어 있는지 더 명확하게 표시했습니다. 파일에 검색 용어가 여러 번 나타나는 경우 유용할 수 있습니다.
파일 경로 구분 기호 버튼
특정 파일의 파일 결과에 마우스를 올리거나 결과로 화살표를 내리면 버튼(예: 파일 열기)도 파일 경로 구분 기호에 나타납니다.
빠른 선택 구분 기호 탐색 키 바인딩
빠른 선택에서 구분 기호 간에 이동할 수 있으면 좋겠다는 피드백을 받았습니다. 이번 반복에서는 이를 수행하는 키 바인딩을 추가했습니다. Windows 및 Linux에서는 Alt+Up/Down을 사용할 수 있으며, macOS에서는 Cmd+Up/Down입니다. 이 예제 비디오에서는 활성 항목이 이동하는 것을 볼 수 있습니다.
- 명령 팔레트의
최근 사용및기타 명령구분 기호 - 빠른 검색의 파일 경로 구분 기호 간
빠른 선택 비활성화된 확인란 항목
이번 반복에서는 빠른 선택에 비활성화된 항목이 표시될 때 더 명확하게 표시했습니다. 이는 로그인한 모든 계정에 대해 액세스할 수 있는 "신뢰할 수 있는 확장 관리" 빠른 선택에서 찾을 수 있는 예입니다.

확장 업데이트 개선 사항
확장 다시 시작
확장이 업데이트될 때 이제 창을 다시 로드할 필요 없이 확장을 다시 시작할 수 있습니다.

참고: WSL 또는 SSH 또는 Dev Container와 같은 원격 서버에 연결된 경우 확장을 업데이트하려면 여전히 창을 다시 로드해야 합니다.
VS Code 업데이트와 함께 확장 업데이트
extensions.autoCheckUpdates확장 자동 업데이트가 활성화되어 있으면 VS Code는 이제 업데이트 가능한 새 버전의 VS Code와 호환되는 확장을 업데이트합니다. 새 버전의 확장 프로그램이 현재 버전의 VS Code와 호환되지 않으면, VS Code를 업데이트한 후에만 새 버전의 확장 프로그램이 활성화됩니다.
댓글 답글로 이동
댓글 보기의 댓글 스레드에 대한 컨텍스트 메뉴에 답글이 가능한 경우 "Reply" 작업이 포함됩니다. 이를 통해 답글 입력란으로 빠르게 이동하여 답글을 입력할 수 있습니다.

편집기
미니맵 섹션 헤더
이제 미니맵이 TypeScript의 //#region 또는 MARK:를 사용하는 주석과 같은 접기 마커로 정의된 섹션을 인식하고 렌더링합니다. 이를 통해 대용량 파일을 빠르게 스캔하고 이동할 수 있습니다.

리팩터링 미리 보기 키 바인딩
코드 액션과 같은 다른 컨텍스트에서 리팩터링 미리 보기와 일관성을 유지하기 위해 이름 바꾸기 기호 리팩터링(F2)에 대한 편집 미리 보기 키 바인딩을 업데이트했습니다. 이제 ⌘Enter (Windows, Linux Ctrl+Enter)(이전 Shift + Enter)를 사용하여 편집 내용을 미리 볼 수 있습니다.
코드 액션을 마우스로 가리킬 때 ⌘Enter (Windows, Linux Ctrl+Enter)를 사용하면 워크벤치의 리팩터링 미리 보기 패널도 열립니다.
Diff 편집기 스테이징/되돌리기 선택 버튼
이제 diff 편집기에 Stage 및 Revert 컨트롤에 대한 별도의 여백이 있습니다. 이러한 작업을 통해 변경된 코드 블록을 스테이징하거나 되돌릴 수 있습니다.
텍스트 선택을 통해 일부 변경 사항을 선택하면 이러한 버튼을 사용하여 선택한 변경 사항(선택 내의 모든 변경된 문자)을 스테이징하거나 되돌릴 수 있습니다.

diffEditor.renderGutterMenu를 false로 설정하여 diff 편집기 여백을 숨길 수 있습니다.
이름 제안 동작 변경
빠른 선택과 일치하도록 이름 제안 사용 흐름을 개선했습니다. 목록에서 이름 제안을 선택하면 입력 값이 이에 맞게 업데이트되어 제안을 더 수정할 수 있습니다.

소스 제어
들어오는 변경 사항 파일 장식
원격에서 변경 사항을 병합/리베이스할 때 잠재적인 충돌을 방지하기 위해 이제 들어오는 변경 사항이 있고 페치되었지만 아직 병합/리베이스되지 않은 모든 파일에 대해 파일 장식이 표시됩니다. 이 기능을 사용하려면 git.autofetch 및 git.decorations.enabled 설정을 모두 활성화해야 합니다.

테마: GitHub Sharp (vscode.dev에서 미리 보기: vscode.dev)
터미널
디버그 터미널의 셸 통합
사용자 및 확장에 대한 향상된 기능을 제공하기 위해 디버깅 중에 시작되는 터미널에서 이제 셸 통합이 자동으로 활성화됩니다.
최근 명령 실행 개선 사항
셸 통합 기반 최근 명령 실행(⌃⌥R (Windows, Linux Ctrl+Alt+R))은 가능한 경우 마지막 명령 실행 시간으로 스크롤하여 표시합니다. 명령을 실행하거나 빠른 선택을 취소하면 터미널이 이전 상태로 돌아갑니다.
테마: Sapphire (vscode.dev에서 미리 보기)
감지된 링크 열기 개선 사항
감지된 링크 열기 명령(⇧⌘O (Windows, Linux Ctrl+Shift+O))이 이제 편집기에서 링크 결과를 미리 보고 터미널에서 링크 소스를 강조 표시합니다.
또한 중복 링크는 이제 목록에서 필터링되며 모든 링크는 일관된 형식으로 제공됩니다.

단어 링크에 대한 추가 컨텍스트
단어 링크는 terminal.integrated.wordSeparators 설정에 의해 정의되며 파일/폴더/URI를 찾을 수 없을 때 대체됩니다. 이러한 링크를 활성화하면 이제 검색이 발생하는 줄 번호와 열 정보에 대한 추가 주변 컨텍스트가 포함됩니다.
스크린샷에서 terminalLinkParsing 링크가 선택되었지만 결과 검색에는 링크 다음 줄 번호도 포함된다는 점에 유의하십시오.

새로운 링크 형식
다음 링크 형식은 경로에 공백이 포함된 경우에도 이제 터미널에서 감지됩니다.
FILE path:line:column
터미널 고정 스크롤 투명도 지원
터미널의 고정 스크롤이 이제 투명도를 지원합니다. 테마는 terminalStickyScroll.background 테마 색상을 투명 값으로 구성하거나 settings.json에서 재정의를 지정하여 이를 사용할 수 있습니다. 예를 들어
{
"workbench.colorCustomizations": {
"[Default Dark Modern]": {
"terminalStickyScroll.background": "#181818c0"
}
}
}
이는 투명한 고정 스크롤 배경을 생성하여 뒤의 텍스트가 비치도록 합니다.

테스트
테스트 커버리지
이번 반복에서는 테스트 커버리지 API를 최종 확정하여 VS Code에 네이티브 커버리지 지원을 제공했습니다. 테스트 시스템이 이를 지원하는 경우 새로운 Run With Coverage 버튼을 사용하여 커버리지를 얻을 수 있습니다.

마찬가지로 커버리지로 실행하기 위한 새로운 키 바인딩이 있으며, 예를 들어 Ctrl+; Ctrl+Shift+A는 모든 테스트를 커버리지로 실행하고 Ctrl+; Ctrl+Shift+L은 마지막 테스트 세트를 커버리지로 실행합니다.
커버리지 정보는 기본적으로 줄 번호 위에 오버레이로 표시되지만, 소스 파일에 대한 완전한 자세한 정보를 보려면 Toggle Inline Coverage를 선택할 수 있습니다.

테마: Codesong (vscode.dev에서 미리보기)
테스트 커버리지를 사용하려면 확장 프로그램이 새 API를 구현해야 합니다. Test Runner for Java 및 node:test runner와 같은 일부 확장 프로그램은 이미 이를 지원합니다. 팀의 12월 및 1월 업데이트에서 Java용 테스트 커버리지에 대해 자세히 알아보세요.
확장 작성자는 테스팅 API 문서에서 테스트 커버리지 API에 대한 자세한 내용을 찾을 수 있습니다.
테스트 메시지의 색상 코드 지원
이제 터미널 색상 코드를 구문 분석하여 테스트 실패 시 표시되는 텍스트 기반 테스트 메시지를 원시 '인쇄할 수 없는' 데이터 코드를 표시하는 대신 색상으로 표시합니다.
언어
TypeScript 5.4
VS Code에 이제 TypeScript 5.4가 포함됩니다. 이 주요 업데이트에는 형식 검사 및 IntelliSense에 대한 새로운 개선 사항과 여러 버그 수정이 포함됩니다. 자세한 내용은 TypeScript 5.4 릴리스 블로그 게시물을 참조하세요.
Markdown에서 이미지 및 링크 삽입이 더 스마트해짐
Markdown 파일에 이미지나 파일을 드롭하거나 붙여넣으면 VS Code가 자동으로 Markdown 이미지 또는 링크 구문을 삽입합니다. 이제 코드 블록 및 Markdown 구문을 지원하지 않는 다른 컨텍스트에 삽입할 때 이 동작을 스마트하게 비활성화합니다.
드롭/붙여넣기 위젯을 사용하여 항상 Markdown 구문 삽입으로 되돌릴 수 있습니다. markdown.editor.drop.enabled 및 markdown.editor.filePaste.enabled 설정을 사용하여 이 동작을 구성할 수 있습니다.
노트북
노트북 출력의 키보드 바로 가기
이제 노트북 출력에서 일부 표준 키보드 바로 가기를 지원합니다.
- 출력은 키보드로 선택하고 각각
Ctrl+A및Ctrl+C키 바인딩으로 복사할 수 있습니다. - 스크롤 가능한 출력은 키보드로 각각
Up및Down키 바인딩으로 스크롤할 수 있습니다. - 스크롤 가능한 출력의 맨 위와 맨 아래로 스크롤하는 것은 키보드로 각각
Ctrl+Home및Ctrl+End키 바인딩을 사용하여 달성할 수 있습니다(macOS에서는Cmd+Up및Cmd+Down). - 현재 선택 지점에서 출력의 맨 위 또는 맨 아래까지 출력을 선택하는 것은 키보드로 각각
Ctrl+Shift+Up및Ctrl+Shift+End키 바인딩을 사용하여 달성할 수 있습니다(macOS에서는Shift+Cmd+Up및Shift+Cmd+Down).
셀 오류 진단
확장 프로그램은 실패한 셀에 대한 오류 세부 정보를 제공하여 셀 내에 오류 진단이 표시되도록 할 수 있습니다. 셀 컨테이너에 초점을 맞추면 notebook.cell.openFailureActions(⌘. (Windows, Linux Ctrl+.))가 해당 오류에 대한 빠른 작업 메뉴로 이동합니다. 언어 모델이 빠른 작업을 제공할 수 있을 때만 진단이 표시됩니다.
섹션에서 셀 실행
노트북에서 관련 셀을 더 쉽게 실행하려면 이제 마크다운 섹션 헤더로 그룹화된 셀을 Run Cells in Section 작업을 사용하여 실행할 수 있습니다. 이 작업은 노트북 개요 보기 및 고정 스크롤 요소에서 사용할 수 있습니다.
고정 스크롤 요소 내에서 원하는 헤더를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴의 작업을 통해 섹션을 실행합니다. 개요 보기 내에서 마우스를 올리거나 선택할 때 나타나는 도구 모음 아이콘을 선택한 다음 표시되는 작업을 통해 단일 셀 또는 셀 섹션을 실행합니다.
개요 보기의 필터 지원
이제 노트북 개요 보기에 필터가 있어 마크다운 헤더, 코드 셀 및 코드 셀 기호의 포함을 제어할 수 있습니다. 필터는 다음 설정에 해당합니다.
notebook.outline.showMarkdownHeadersOnlynotebook.outline.showCodeCellsnotebook.outline.showCodeCellSymbols
닫을 때 대화형 창 저장 프롬프트
interactiveWindow.promptToSaveOnClose 설정을 활성화하면 대화형 창이 닫힐 때 해당 콘텐츠를 저장하라는 메시지가 표시되어 작업 내용을 잃지 않도록 합니다. 현재 지원되는 파일 형식은 .ipynb뿐입니다.
원격 개발
원격 개발 확장 프로그램을 사용하면 개발 컨테이너, SSH 또는 원격 터널을 통해 원격 머신 또는 Windows Subsystem for Linux(WSL)를 완전한 기능을 갖춘 개발 환경으로 사용할 수 있습니다.
주요 내용은 다음과 같습니다.
- 확장 지원이 포함된 배포판에 대한 대체 서버 다운로드
- URI 쿼리 문자열 기반 포트 전달
- Dev Containers 확장이 자동으로 Docker 시작
- 그룹 정책을 통한 Dev Tunnel 및 포트 전달 액세스 제한
이러한 기능에 대한 자세한 내용은 원격 개발 릴리스 노트에서 확인할 수 있습니다.
확장 프로그램 기여
VS Code 음성
지연 활성화
VS Code Speech 확장은 이제 VS Code에서 음성-텍스트 서비스가 요청될 때만 활성화됩니다. 이렇게 하면 확장이 확장 호스트 시작 시간에 부정적인 영향을 미치지 않습니다.
기본 음성 언어로 표시 언어 사용
기본적으로 VS Code 음성 확장은 이제 VS Code의 표시 언어를 음성 언어로 사용하고 해당 언어가 지원되는 경우 해당 모델을 선택합니다.
accessibility.voice.speechLanguage 설정에 대해 auto가 이제 기본값입니다.
GitHub Copilot
인라인 채팅 개선 사항
이제 인라인 채팅이 플로팅 컨트롤로 시작되어 더 가볍습니다. 첫 번째 요청 후 컨트롤이 확장되어 더 많은 공간을 차지합니다. 또한 채팅 보기 또는 빠른 채팅과 같은 다른 채팅 환경과 더 일관되도록 렌더링을 조정했습니다.
테마: GitHub Light Colorblind (Beta)
다시 실행 및 피드백 컨트롤을 재배치하고, 수락 및 취소 버튼 옆에 차이 보기를 위한 토글 컨트롤을 더 눈에 띄게 만들었습니다.
테마: GitHub Light Colorblind (Beta)
컨텍스트로 노트북 커널 상태
노트북에 있을 때 커널 상태(예: 변수 및 사용 가능한 패키지)가 이제 인라인 채팅의 컨텍스트로 자동 포함됩니다. 이를 통해 Copilot은 노트북의 현재 상태를 사용하여 더 관련성 있는 완료를 제공할 수 있습니다.
테마: GitHub Dark
커밋 메시지 생성 개선 사항
생성된 커밋 메시지의 품질을 개선하기 위해 이제 리포지토리의 최근 10개 커밋의 커밋 메시지와 현재 사용자의 최근 10개 커밋의 커밋 메시지를 추가 컨텍스트로 포함합니다.
워크스페이스 생성 개선 사항
@workspace /new 명령은 이제 채팅 프롬프트에 대한 적절한 일치 항목이 감지될 때 제안으로 GitHub 리포지토리에서 큐레이션된 샘플 프로젝트를 제공합니다.

@workspace /new 명령은 컨텍스트 및 기록을 더 효과적으로 관리하도록 개선되었습니다. 이를 통해 후속 쿼리를 통해 제안된 워크스페이스 구조 및 파일 내용을 구체화할 수 있습니다. 예를 들어 "JavaScript 대신 TypeScript 사용" 또는 "Bootstrap도 추가"와 같은 것입니다.
@terminal /explain 슬래시 명령
명령 또는 오류를 설명하는 데 최적화된 새로운 @terminal /explain 슬래시 명령을 사용할 수 있습니다. /explain 없이 @terminal은 수정을 제안하도록 최적화되었습니다. 이 슬래시 명령은 Explain using Copilot 빠른 수정 또는 Explain selection 작업에서 사용됩니다.

미리 보기: 터미널 인라인 채팅
이번 릴리스에서는 터미널 인라인 채팅의 미리 보기를 사용할 수 있으며, 터미널에서 직접 Copilot의 기능에 편리하게 액세스할 수 있습니다.
terminal.integrated.experimentalInlineChat:true 설정을 사용하여 터미널 인라인 채팅을 활성화할 수 있습니다. 터미널에서 인라인 채팅을 호출하려면 ⌘I (Windows, Linux Ctrl+I) 키 바인딩을 사용합니다.

터미널 인라인 채팅은 통합 터미널의 셸 및 해당 콘텐츠에 대한 컨텍스트를 가진 @terminal 채팅 참가자를 사용합니다.

명령이 제안되면 ⌘Enter (Windows, Linux Ctrl+Enter)를 사용하여 터미널에서 명령을 실행하거나 ⌥Enter (Windows, Linux Alt+Enter)를 사용하여 명령을 터미널에 삽입합니다. 명령은 실행하기 전에 Copilot의 응답에서 직접 편집할 수도 있습니다(현재 Windows 및 Linux의 경우 Ctrl+down, Tab, Tab, macOS의 경우 Cmd+down, Tab, Tab).

인증 흐름에 대한 명확성
인증에 대한 명확성은 매우 중요합니다. 인증 방법과 요청하는 내용을 명확히 하고자 합니다. VS Code에서 비공개 리포지토리를 열고 이 시나리오에 대한 인증이 올바르지 않으면 인증 대화 상자가 표시됩니다. 이 대화 상자에는 인증이 필요한 이유에 대한 설명과 이러한 요구 사항에 대해 자세히 알아볼 수 있는 자세히 알아보기 버튼이 있습니다.

자세히 알아보기 버튼을 클릭하면 인증 요구 사항에 대한 문서로 이동합니다.
변수 참조
채팅 응답의 Used references 섹션은 사용된 컨텍스트에 대한 정보를 제공합니다. 이전에는 이 섹션에서 암묵적으로 가져온 컨텍스트만 표시했습니다. 이제는 채팅 프롬프트에 명시적으로 언급한 변수(예: #file 또는 #editor)도 표시됩니다. 사용된 참조에서 변수가 누락된 경우 언어 모델의 컨텍스트 창에 너무 커서 무시되었음을 나타낼 수 있습니다.

보조 채팅 제출 작업
채팅 보기에서 채팅 제출 버튼에 이제 더 많은 작업에 쉽게 액세스할 수 있는 드롭다운이 있습니다.
- Send to @workspace는 워크스페이스 콘텐츠에 대한 질문에 유용한
@workspace채팅 참가자에게 쿼리를 제출합니다. - Send to New Chat은 비어 있는 새 채팅을 시작한 다음 쿼리를 제출합니다.

Copilot: Explain This 사용 시 범위 선택
활성 편집기에서 선택 없이 /explain을 사용하고 관심 있는 여러 범위가 있는 경우, 어떤 기호 또는 블록 범위를 설명할지 명확히 하기 위한 프롬프트 지원이 추가되었습니다.

이 동작은 현재 선택 사항이며 github.copilot.chat.scopeSelection 설정으로 제어됩니다.
Python
Flask 및 Django에 대한 디버그 구성 선택 개선
Flask 및 Django 앱에 대한 시작 구성 만들기가 더 쉬워졌습니다! 웹 앱에 대한 launch.json을 만들 때 워크스페이스에서 가능한 시작 파일을 감지하는 데 개선 사항이 이루어졌습니다.
Django의 경우 Python Debugger 확장은 워크스페이스의 루트 또는 한 단계 아래의 하위 디렉터리에서 manage.py 또는 app.py 파일을 찾습니다. Flask의 경우 확장은 Flask 애플리케이션 선언(예: app = Flask())을 포함하는 wsgi.py, app.py 또는 init.py 파일을 찾습니다.
프로젝트에서 이러한 파일을 찾을 수 없는 경우 드롭다운에 해당 프로젝트 유형에 대한 Default 옵션이 표시됩니다. 해당 파일이 없더라도 말입니다.
Hatch 환경 검색
Hatch 환경은 이제 Venv, Conda 및 Poetry와 같은 다른 일반적인 환경과 마찬가지로 기본적으로 검색 및 활성화됩니다. 또한 Hatch의 경우 명시적인 환경 식별자가 등록되지 않은 경우, 확장은 환경 로케이터에서 환경 유형(Hatch)을 결정할 수 있습니다.
pipenv, pyenv 및 Poetry 프로젝트에 대한 자동 환경 선택
워크스페이스에 pipenv, pyenv 또는 Poetry 환경이 포함된 경우, 해당 환경이 이제 워크스페이스에 대해 자동으로 선택됩니다. 이전에는 확장이 이러한 환경을 올바르게 검색했지만 기본 전역 인터프리터를 선택했으므로 워크스페이스에 대해 적절한 환경을 수동으로 선택해야 했습니다.
이제 Python 확장은 환경의 존재 및 해당 구성 파일에 따라 활성화된 환경을 추론합니다. 예를 들어 pyenv의 경우, 확장은 .python-version 파일을 확인하여 워크스페이스에 대한 적절한 인터프리터를 자동으로 선택합니다.
오래된 이슈 보고 명령 개선 사항
Python 및 Python Debugger 확장이 이제 여러분이 리포지토리에 문제를 보고하는 것을 더 쉽게 만듭니다! Report Issue 명령(workbench.action.openIssueReporter)으로 문제를 제기하면 대부분의 작업이 이미 완료되었으며, 팀이 문제점을 효율적으로 분류하기 위해 추가 정보만 요청받게 됩니다.
Help: Report Issue 명령을 사용하여 @vscode-python 또는 @vscode-python-debugger에 대한 문제를 제기하려면 확장 프로그램 드롭다운에서 각각 Python 또는 Python Debugger를 선택하십시오.
GitHub 풀 요청
풀 요청 및 이슈를 작업하고, 생성하고, 관리할 수 있는 GitHub Pull Requests 확장 프로그램에 더 많은 진전이 있었습니다. 새로운 기능은 다음과 같습니다.
- 댓글 보기에서 오래된 댓글은 현재 댓글과 다르게 표시됩니다.
githubPullRequests.createDefaultBaseBranch에 대한 새로운auto값은 포크 리포지토리의 기본 브랜치로 업스트림의 기본 브랜치를 사용합니다.- 댓글 보기의 댓글 스레드에는 인라인 작업(해결/해결 안 함 및 오래된 댓글의 경우 "Diff Comment with HEAD") 및 컨텍스트 메뉴 작업이 있습니다.
확장 프로그램 0.86.0 릴리스의 변경 로그를 검토하여 다른 주요 내용을 알아보세요.
Jupyter
셀 실행 분석 개선 사항
최신 Pylance 미리 보기 릴리스를 통해 Jupyter 셀에 대한 종속성 분석이 개선되었습니다. 이제 모듈 가져오기를 이해하며, 이전 셀에 정의된 모듈을 가져오는 셀이 있는 경우 특히 유용합니다.
이 기능을 활성화하려면 VS Code Insiders에 최신 Pylance 미리 보기를 설치하고 jupyter.executionAnalysis.enabled 및 notebook.consolidatedRunButton 설정을 활성화하십시오.
확장 프로그램 작성
확장 프로그램 버그 보고를 위한 이슈 리포터 명령 사용
지난 반복에서 GitHub에 VS Code의 Issue Reporter를 통해 제출할 때 확장 프로그램이 추가 데이터나 템플릿을 제공할 수 있는 방법을 최종 확정했습니다. 확장 프로그램은 명령을 제공할 수 있으며, 이 명령은 도움말: 이슈 보고... 명령을 통해 접근할 수 있습니다. 확장 프로그램을 선택하면 해당 확장 프로그램이 제공하는 명령이 실행됩니다. 확장 프로그램과 함께 이 기능이 어떻게 작동할 수 있는지에 대한 자세한 내용은 이슈 보고 문서/릴리스 정보를 검토해 주세요!
또한, 설치된 모든 확장 프로그램은 빠른 열기(Quick Open)를 통해 신속하게 보고할 수 있습니다. 빠른 열기(⌘P (Windows, Linux Ctrl+P))에서 issue 를 입력하면 보고할 설치된 확장 프로그램을 빠르게 선택하거나 검색할 수 있습니다.
일부 확장 프로그램은 이 새로운 이슈 보고 흐름을 활용하도록 전환될 예정이며, 더 이상 명령 팔레트에 직접 제공되는 사용자 지정 이슈 보고... 명령이 필요하지 않게 됩니다.
미리보기 기능
터미널에서 겹치는 글꼴 재조정
새로운 설정 terminal.integrated.rescaleOverlappingGlyphs를 사용할 수 있으며, 이는 셀이 겹치는 글꼴을 재조정합니다. 이는 모호한 너비 문자를 포함하도록 설계되었으며, 백엔드 pty/유니코드 버전에서 생각하는 것과 일치하지 않는 폰트 글꼴을 가질 수 있습니다. 예를 들어, 대부분의 글꼴에서 로마 숫자 유니코드 문자(U+2160+)는 일반적으로 여러 셀을 차지하므로 이 설정이 활성화되면 가로로 재조정됩니다.
재조정 없이

재조정 적용

재조정이 발생하는 규칙은 여전히 조정 중이며, 안정화되면 향후 기본적으로 활성화하는 것을 고려하고 있습니다. 이 기능을 사용해 보고 재조정되었지만 재조정되지 않아야 한다고 생각하는 문자를 발견하면 이슈를 생성해 주세요.
로컬 작업 영역 확장
작업 영역에 직접 확장 프로그램을 패키징할 수 있는 이 새로운 미리 보기 기능을 소개하게 되어 기쁩니다. 이 기능은 특정 작업 영역 요구 사항을 충족하고 보다 맞춤화된 개발 환경을 제공하도록 설계되었습니다.
이 기능을 사용하려면 작업 영역 내 .vscode/extensions 폴더에 확장 프로그램을 패키징해야 합니다. 그러면 VS Code는 이 확장 프로그램을 확장 보기의 작업 영역 추천 섹션에 표시하며, 사용자는 여기서 설치할 수 있습니다. VS Code는 해당 작업 영역에만 확장 프로그램을 설치합니다. 또한, 이 확장 프로그램을 설치하고 실행하기 전에 사용자가 작업 영역을 신뢰해야 합니다.
예를 들어, VS Code 리포지토리의 vscode-selfhost-test-provider 확장 프로그램을 살펴보세요. 이 확장 프로그램은 테스트 기능을 통합하여 기여자가 작업 영역 내에서 직접 테스트를 보고 실행할 수 있도록 합니다. 다음 스크린샷은 확장 보기의 작업 영역 추천 섹션에 있는 vscode-selfhost-test-provider 확장 프로그램과 설치할 수 있는 기능을 보여줍니다.

이 기능은 Insiders 릴리스에서 extensions.experimental.supportWorkspaceExtensions를 통해 미리 보기로 사용할 수 있습니다. 직접 사용해 보시고 피드백은 VS Code 리포지토리에 이슈를 생성하여 알려주세요.
제안된 API
터미널 쉘 통합 API
쉘 통합 활성화 터미널에서 제공되는 일부 정보에 액세스할 수 있도록 하는 새로운 제안 API를 사용할 수 있습니다. 이 API를 사용하면 터미널에서 실행 중인 명령의 수신 데이터 및 종료 코드를 수신 대기할 수 있습니다. 또한 프롬프트가 사용 가능해질 때까지 대기한 후 명령을 보내는 보다 안정적인 방법을 도입하여 다양한 쉘 설정에서 발생할 수 있는 일부 충돌/경쟁 조건을 수정하는 데 도움이 됩니다.
Terminal.shellIntegration.executeCommand 제안 사용 예시
// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidActivateTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
if (terminal === myTerm) {
const command = shellIntegration.executeCommand('echo "Hello world"');
const code = await command.exitCode;
console.log(`Command exited with code ${code}`);
}
}));
// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
if (!myTerm.shellIntegration) {
myTerm.sendText('echo "Hello world"');
// Without shell integration, we can't know when the command has finished or what the
// exit code was.
}
}, 3000);
명령의 데이터 스트림 수신 대기 예시
// Create a terminal and log all data via console.log
const myTerm = window.createTerminal();
window.onDidStartTerminalShellExecution(execution => {
if (execution.terminal === myTerm) {
const stream = execution.createDataStream();
for await (const data of stream) {
console.log(data);
}
}
});
새로운 API는 여기에서 검토할 수 있습니다.
인증 API에 대한 자세히 알아보기 속성
이번 반복에서는 AuthenticationForceNewSessionOptions에 learnMore 속성을 지정할 수 있는 새로운 제안 API를 추가했습니다. 아이디어는 옵션에 forceNewSession 속성을 사용하여 getSession을 호출하는 경우, 인증을 요청하는 이유에 대해 사용자에게 제공될 URI를 포함할 수 있다는 것입니다. 다음은 그 예시입니다.

코드에서 어떻게 보이는지
vscode.authentication.getSession('github', ['repo'], {
forceNewSession: {
detail: l10n.t('To show you more relevant Copilot Chat results, we need permission to read the contents of your repository on GitHub.'),
learnMore: Uri.parse('https://aka.ms/copilotRepoScope')
};
});
새로운 API는 여기에서 검토할 수 있습니다.
오래된 주석
새로운 주석 스레드 applicability 속성을 통해 주석 보기에 주석 스레드를 오래된 것으로 표시할 수 있습니다.

API 제안은 여기에서 볼 수 있습니다.
주석 보기 메뉴
commentsView/commentThread/context 제안 메뉴를 통해 주석 보기의 주석 스레드에 대한 마우스 오른쪽 버튼 컨텍스트 메뉴에 동작을 추가할 수 있습니다. 일반적인 inline 그룹도 존중되므로 동작이 주석 보기 인라인에 표시됩니다.

엔지니어링
Electron 28 업데이트
이번 반복에서는 Electron 28 업데이트를 안정적인 릴리스 사용자에게 제공합니다. 이 업데이트에는 Chromium 120.0.6099.291 및 Node.js 18.18.2가 포함됩니다. Insiders 빌드에서 셀프 호스팅하고 조기 피드백을 제공한 모든 분들께 감사드립니다.
주요 수정 사항
- 204886 이름은 같지만 경로가 다른 파일을 간단한 파일 선택기에서 열면 실패합니다.
감사합니다
마지막으로, VS Code 기여자에 대한 진심 어린 감사의 말씀을 전합니다.
이슈 추적
이슈 추적에 대한 기여
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @starball5 (starball)
- @the-coder-o (Abdul basit)
- @ArturoDent (ArturoDent)
풀 리퀘스트
vscode 기여
- @333fred (Fred Silberberg): 문자열 또는 정규식의 일부일 때 공백을 자르지 않기 PR #198164
- @89netraM (Mårten Åsberg): 간격 설정의 마지막 줄 번호 렌더링 PR #207227
- @a-stewart (Anthony Stewart)
- 빠른 접근에서 접두사를 변경할 때 커서가 점프하는 현상 중지 - v2 PR #204702
- ILocalizedString를 nls.mock.ts에 내보내기 PR #206449
- @akbyrd (Adam Byrd)
- 여러 커서가 있을 때 기본 및 보조 커서에 대해 별도의 색상 구현 PR #181991
- editor.action.focusNextCursor를 모든 커서 대신 기본 커서를 표시하도록 변경 PR #182148
- @AndreasBackx (Andreas Backx): Linux Wayland의 부드러운 스크롤 수정. PR #205122
- @andrewbranch (Andrew Branch): [typescript-language-features] autoImportFileExcludePatterns 형식이 Windows에서 작동하도록 수정 PR #202762
- @andyscho (Andy Schoenberger): onDidChangeSelectedNotebooks에 대한 커널 구독은 하나만 PR #204417
- @BABA983 (BABA): 테스트 사이드바 재시도 색상 개선 PR #207949
- @BrandonXLF (Brandon Fowler): 터미널 탭 이미지 아이콘의 CSS content 재정의 PR #207220
- @BrookMaoDev (Brook Mao): editor.useTabStops 설정에 대한 설명 개선 PR #206552
- @btwiuse: cli:
code serve-web명령에 --server-base-path 플래그 추가 PR #207932 - @BusinessDuck (Dmitriy Yurov): 브라우저 자동 채워진 양식 이벤트에 대한 'e.getModifierState is not a function' 오류 수정 PR #206883
- @cchanche (Clément Chanchevrier): 터미널 방향 크기 조정 PR #205015
- @CGNonofr (Loïc Mangeonjean)
- 키보드 레이아웃 감지 수정 PR #205193
- 전체 화면 컨테이너 차원 감지 수정 (직접 body에 있지 않은 경우) PR #205884
- @cpendery (Chapman Pendery)
- fix: 터미널 제안을 퍼지 점수에 따라 정렬 PR #208486
- fix: 키 바인딩이 쉘로 전송될 때 터미널 제안 표시 안 함 PR #208523
- fix: 완료 수락 시 제안 위젯 유지 PR #208524
- @deyihu (hu de yi): editor paste 이벤트 결과 ClipboardEvent 반환 PR #192732
- @dgileadi (David Gileadi): 미니맵 섹션 헤더 도입 (Xcode 스타일) PR #190759
- @futurist (James Yang): feat: IPCServer에 ipcLogger 및 timeoutDelay 추가 PR #193896
- @gjsjohnmurray (John Murray): 출력 보기에서 채널 로그 수준을 설정 가능하게 함 PR #205159
- @harbin1053020115 (ermin.zem): fix: 최초 실행 시 내장된 워크스루가 없으면 첫 번째 확장 프로그램 워크스루 선택. PR #207303
- @hickford (Mickford): 줄 정렬: 선택된 항목이 없으면 모든 줄 정렬. PR #200325
- @hsfzxjy (Xie Jingyi)
- 설정 편집기 목록 항목 오버플로우 수정 PR #206681
- 가터에 중간 클릭 시 로그 포인트 추가 PR #206684
- @IncognitaDev (Luis Sousa): Feat: CaseActions에 PascalCase 추가 PR #206259
- @its-miroma (Miroma): 기본 YAML 확장 변경 PR #206447
- @jeanp413 (Jean Pierre): 빵 부스러기 위젯이 제대로 크기 조정되지 않는 문제 수정 PR #200591
- @jeremy-rifkin (Jeremy Rifkin): Monarch 기능을 확장하여 규칙 내에서 상태 액세스 허용 PR #183463
- @jhasse (Jan Niklas Hasse): LineCommentCommand에 tabSize 대신 indentSize 사용 PR #193811
- @Krzysztof-Cieslak (Krzysztof Cieślak)
- 인라인 편집에서 제거 렌더링 시 오프셋 오류 수정 PR #205890
- 인라인 편집 - blur 시 진행 중인 요청 취소 확인 PR #206430
- 인라인 편집 - 새 편집 요청 전에 수락 완료 확인 PR #206525
- @lusingander (Kyosuke Fujimoto):
editor.cursorSurroundingLinesStyle설정의 잘못된 설명 수정 PR #201482 - @mahmoudsalah1993 (Mahmoud Salah): diff 편집기의 경우, c...에서 테스트 실행을 허용하도록 수정된 편집기 해결 PR #206026
- @marrej (Marcus Revaj): # 인라인 완료 핸들에 부분 수락 종류 추가 PR #202668
- @mkasenberg: searchEditor: 한 번의 클릭으로 미리 볼 수 있는 옵션 추가 PR #204413
- @mroch (Marshall Roch): "Extension [object Object] is not known" 오류 수정 PR #207764
- @NriotHrreion (NoahHrreion): 호버 위젯의 예기치 않은 위치 수정 PR #205502
- @orgads (Orgad Shaneh)
- 터널: 쿼리 문자열에 대한 포트 매핑 조회 확장 (두 번째 시도) PR #204807
- 터널: 포트 매핑에 대한 단위 테스트 다시 추가 PR #207249
- @PmcFizz (Fizz): IActionDescriptor.precondition 설명 업데이트 PR #176124
- @raphaelgpalma (Raphael Palma): 문법 오류 수정: 'But allow them if the are made from inside an…' PR #207584
- @rehmsen (Ole): 브라우저에서 사이드 바이 사이드 뷰에 대한
resource원격 측정 로그 기록. PR #208196 - @russelldavis (Russell Davis): JavaScript 및 TypeScript에 대한 decreaseIndentPattern 수정 PR #201425
- @samdenty (Sam Denty): feat(web/lifecycleService): startupKind 수정 PR #206563
- @Sidebail (VLADIMIR VATSURIN): 파일 상대 경로 링크 수정 PR #181475
- @SimonSiefke (Simon Siefke): fix: notebook baseCellViewModel의 메모리 누수 PR #205499
- @solimant: GitHub 브랜드 이름 대소문자 존중 PR #208503
- @thegecko (Rob Moran): 웹 확장 호스트 시작 시 extensionPaths 업데이트 PR #193849
- @vinistock (Vinicius Stock): Ruby 주석에서
in및when의 의도하지 않은 들여쓰기 되돌리기 수정 PR #206132 - @yamachu (Yusuke Yamada): 검색 결과에서 가장 깊은 디렉토리의 파일 표시하도록 수정 PR #206609
- @Yesterday17 (Yesterday17): GestureEvent를 노드 깊이 순서대로 디스패치 PR #200612
- @yiliang114 (易良): 웹뷰에서 복사/잘라내기 명령이 작동하지 않는 문제 수정 PR #206529
- @yutotnh (yutotnh): 단어 작업에서 단어 로케일 인식 지원 추가 (#_50045) PR #203605
vscode-css-languageservice에 대한 기여
- @balaji-sivasakthi (Balaji Sivasakthi): feat: scss에 대한 호버 툴팁 지원 PR #367
vscode-eslint 기여
- @JoshuaKGoldberg (Josh Goldberg ✨): feat: eslint.probe 설정에 json, json5, jsonc 지원 PR #1787
- @remcohaszing (Remco Haszing)
vscode-extension-samples 기여
- @juliankasimir (Julian Kasimir): feat(lang): showQuickPick 함수에서 독일어를 영어로 변경 PR #983
vscode-hexeditor에 기여
vscode-js-debug 기여
- @Beanyy: 설명이 설정되지 않은 원격 객체의 숫자 0 형식 지정 수정 PR #1968
- @mdh1418 (Mitchell Hwang): [CDP] DotnetDebugger 오류 이벤트에 대한 원격 측정 전송 PR #1961
- @relief-melone (Relief.Melone): 빌드에 대한 프록시 지원 추가 PR #1965
vscode-json-languageservice 기여
- @denisw (Denis Washington): 중첩된 후행 쉼표의 경우 정렬 오류 수정 PR #223
vscode-pull-request-github 기여
- @ipcjs (ipcjs): fix:
review.openLocalFile가 키보드에서 트리거되도록 지원 PR #5840 - @mohamedamara1 (Mohamed Amara): IssueOverviewPanel의 ID 수정 PR #5822
vscode-pylint에 대한 기여
- @MGasiewski: 물결표(~)를 홈 환경으로 대체하는 로직 추가 PR #524
vscode-python-debugger 기여
- @bersbersbers:
launch.json스키마 업데이트 PR #243 - @StephanTLavavej (Stephan T. Lavavej): 오타 수정 PR #217
debug-adapter-protocol에 기여
- @andyw8 (Andy Waite): Ruby LSP에 대한 어댑터 목록 업데이트 PR #471
- @svaante (Daniel Pettersson): Emacs dape 패키지를 구현 도구 섹션에 추가 PR #469
inno-updater에 대한 기여
- @ChayimFriedman2 (Chayim Refael Friedman): 불필요한
unsafe impl Send제거 PR #25
language-server-protocol 기여
- @asukaminato0721 (Asuka Minato)
- @iliaamiri (Ilia Abedianamiri): 요약 문단의 작은 오타 PR #1903
- @lukaskesch (Lukas Kesch): footer.html의 저작권 연도를 2024년으로 업데이트 PR #1909
- @MariaSolOs (Maria José Solano): 진단 메시지에서 MarkupContent 지원 사양 PR #1905
- @oliviacrain (Olivia Crain): rnix-lsp 서버 항목 제거 PR #1902
monaco-editor 기여
- @jeremy-rifkin (Jeremy Rifkin): C++ 원시 문자열 리터럴 강조 표시 버그 수정 PR #4436
node-pty 기여