2022년 11월 (버전 1.74)
업데이트 1.74.1: 이 업데이트는 다음 이슈를 해결합니다.
업데이트 1.74.2: 이 업데이트는 다음 이슈를 해결합니다.
업데이트 1.74.3: 이 업데이트는 이 보안 이슈를 해결합니다.
다운로드: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code의 2022년 11월 릴리스에 오신 것을 환영합니다. 이번 버전에는 여러분이 좋아하실 만한 많은 업데이트가 포함되어 있으며, 주요 내용은 다음과 같습니다.
- 탐색기 자동 표시 사용자 지정 - 탐색기에서 스크롤하여 표시할 파일을 결정합니다.
- 활동 표시줄 및 패널 배지 숨기기 - 상태 배지를 전환하여 편집기 UI를 단순화합니다.
- 노트북 및 차이 보기용 오디오 큐 - 셀 실행 결과, 추가 또는 삭제된 줄에 대한 소리입니다.
- 병합 편집기 실행 취소/다시 실행 - 병합 충돌 작업을 빠르게 되돌리거나 다시 적용합니다.
- 안전하지 않은 Git 리포지토리 관리 - 소유자가 아닌 폴더에 대한 Git 작업을 방지합니다.
- JavaScript console.profile 컬렉션 - VS Code에서 보기 위한 CPU 프로필을 쉽게 생성합니다.
- 반환에서 정의로 이동 - JavaScript/TypeScript 함수의 맨 위로 점프합니다.
- 원격 터널 - SSH가 필요 없이 모든 머신에 연결합니다.
- Jupyter 노트북 "내 코드만" 디버깅 - Python 라이브러리 코드로 단계별 실행하는 것을 방지합니다.
- 개발 컨테이너 GPU 지원 - 개발 컨테이너를 만들 때 GPU를 요청합니다.
이 릴리스 노트를 온라인으로 읽으려면 code.visualstudio.com의 업데이트로 이동하십시오.
Insider: 새로운 기능을 최대한 빨리 사용해 보고 싶으신가요? 야간 빌드인 Insider 빌드를 다운로드하고 사용 가능한 최신 업데이트를 즉시 사용해 보세요.
접근성
노트북 실행을 위한 오디오 큐
이제 노트북 셀이 실행 완료될 때 오디오 큐가 제공됩니다. 셀이 성공적으로 실행되었는지 또는 실패했는지 나타내기 위해 큐가 다릅니다.
차이 검토 모드를 위한 오디오 큐
차이 편집기에서 **다음 차이점으로 이동**이 트리거될 때, 커서가 삽입 또는 삭제된 줄에 있는지 나타내는 특정 오디오 큐가 재생됩니다.
사용 가능한 오디오 큐가 궁금하다면 **도움말: 오디오 큐 목록** 드롭다운을 통해 들어볼 수 있습니다.

키보드 탐색 가능한 설정 편집기 표시기, 호버 및 링크
설정 편집기의 표시기, 호버 및 링크는 이제 키보드로 탐색할 수 있습니다. 일부 링크의 스타일도 설정 편집기 전체에서 더 나은 일관성을 위해 조정되었습니다.
설정 편집기 표시기 호버는 이제 탭 정지 및 키보드 포커스 유지 측면에서 훨씬 더 잘 작동합니다. 이 향상된 동작은 여전히 실험적이며 현재 VS Code 전체의 모든 호버가 아닌 설정 편집기 표시기 호버에만 활성화되어 있습니다.

테마: Light Pink (vscode.dev에서 미리 보기)
워크벤치
사용자 지정 탐색기 자동 표시 논리
매우 많은 좋아요를 받은 이슈 #87956("특정 폴더별 explorer.autoReveal 설정 허용")은 새로운 설정 explorer.autoRevealExclude의 도입으로 해결되었습니다. 이 설정을 사용하면 자동 표시가 활성화된 경우(explorer.autoReveal, 기본값 true) 탐색기에서 자동 표시될 파일을 구성할 수 있습니다. autoRevealExclude 설정은 파일을 제외하기 위해 glob 패턴을 사용하며, files.exclude와 유사하게 when 절을 통한 형제 일치도 지원합니다.
기본값은 node 및 bower 모듈을 제외합니다.
{
"explorer.autoRevealExclude": {
"**/node_modules": true,
"**/bower_components": true
}
}
보기 컨테이너별 배지 숨기기
보기 컨테이너를 마우스 오른쪽 버튼으로 클릭하여 숨길 수 있었던 것과 마찬가지로, 이제 컨테이너의 배지(활동 표시줄, 패널 및 보조 사이드 바에 표시됨)를 숨길 수 있습니다. 배지는 종종 특정 보기 컨테이너에 대한 숫자, 아이콘 또는 진행률 표시기를 표시합니다. 예를 들어, 소스 제어 보기에 대한 보류 중인 변경 횟수입니다.

병합 편집기
이번 릴리스에서는 병합 편집기에 대한 몇 가지 개선 사항과 버그 수정이 제공됩니다. 주요 내용은 다음과 같습니다.
- 실행 취소/다시 실행은 이제 충돌의 처리된 상태를 추적합니다.
- 입력 보기의 **무시** 작업은 결과 보기의 **처리됨으로 표시** 작업 대신 기본 버전을 수락하는 데 사용될 수 있습니다.
- 양쪽에 동일한 변경 사항은 이제 자동으로 해결됩니다.
git blame기능을 제공하는 확장 프로그램이 이제 들어오는, 현재 및 기본 편집기에서 작동합니다.
디스크에 있는 확장 프로그램 설치
이제 **개발자: 위치에서 확장 프로그램 설치...** 명령을 사용하여 로컬 디스크 드라이브에 있는 확장 프로그램을 설치할 수 있습니다. 이 명령은 확장 프로그램의 .vsix 파일을 선택할 플랫폼 폴더 대화 상자를 엽니다.
편집기
CJK 문자를 위한 새 단어 줄 바꿈 옵션
editor.wordBreak라는 새 설정을 사용하여 CJK 문자 뒤에 줄 바꿈 지점을 삽입하지 않도록 할 수 있습니다. keepAll로 구성하면 줄 바꿈 알고리즘은 CJK 문자 뒤의 텍스트를 같은 줄에 유지하려고 시도합니다. 이 설정은 다른 스크립트의 문자에 영향을 미치지 않습니다.
OpenType 글꼴에 대한 새 글꼴 설정
OpenType 글꼴 변형을 지원하는 일부 최신 글꼴은 글꼴 가중치 축과 같은 특정 축을 조정하여 font-weight CSS 속성을 통해 구성할 수 없는 글꼴 가중치를 달성할 수 있습니다. CSS에서는 font-variation-settings 속성을 사용하여 이를 달성합니다. 이러한 글꼴을 사용하는 경우 이제 editor.fontVariations를 true로 구성할 수 있으며, 이 경우 VS Code는 글꼴 가중치를 설정하기 위해 "wght" 표시 축을 사용합니다. 글꼴이 다른 축을 지원하는 경우 직접 구성할 수도 있습니다. 예를 들어 "editor.fontVariations": "'ital' 0.5"로 설정합니다.
새 들여쓰기 크기 설정
editor.indentSize라는 새 설정이 있으며, 이를 사용하여 들여쓰기 크기(들여쓰기를 구성하는 공백 수)를 탭 크기(탭 문자를 렌더링하는 데 사용되는 공백 수)와 분리할 수 있습니다. 이는 탭과 공백 들여쓰기가 혼합된 파일을 처리할 때 유용하며 수동 들여쓰기 구성에서만 사용할 수 있습니다.
아래는 구성 예시입니다.
"editor.detectIndentation": false,
"editor.insertSpaces": true,
"editor.tabSize": 8,
"editor.indentSize": 2
인라인 완료 부분적으로 수락하는 명령
인라인 제안의 다음 단어 수락(editor.action.inlineSuggest.acceptNextWord) 명령을 사용하여 현재 인라인 제안의 다음 단어/비단어 세그먼트를 수락할 수 있습니다. 현재는 인라인 제안의 첫 번째 줄 부분만 수락할 수 있습니다. 이 명령은 아직 개발 중이며 향후 릴리스를 위해 키보드 단축키 및 대체 분할 규칙을 탐색하고 있습니다.
소스 제어
안전하지 않은 Git 리포지토리 관리
VS Code는 모든 Git 작업을 실행하기 위해 git.exe를 사용합니다. Git 2.35.2부터 사용자는 현재 사용자가 아닌 사용자가 소유한 폴더에 있는 리포지토리에서 Git 작업을 실행하는 것이 방지됩니다. 리포지토리는 잠재적으로 안전하지 않다고 간주되기 때문입니다.
이번 릴리스부터 이러한 잠재적으로 안전하지 않은 리포지토리를 열려고 하면 VS Code는 소스 제어 보기의 환영 보기와 오류 알림을 표시합니다. 환영 보기와 알림 모두 잠재적으로 안전하지 않은 리포지토리 목록을 검토하고 안전하다고 표시하며 열 수 있는 **안전하지 않은 리포지토리 관리** 명령을 제공합니다. **안전하지 않은 리포지토리 관리** 명령은 명령 팔레트에서도 사용할 수 있습니다. 리포지토리를 안전하다고 표시하면 리포지토리 위치가 safe.directory git 구성에 추가됩니다.
낙관적 사용자 인터페이스 업데이트
Git 작업을 실행한 후 소스 제어 보기 업데이트 전에 데이터 모델을 업데이트하기 위해 일련의 git 명령(예: git status)이 실행됩니다. 이러한 명령을 실행하는 데 몇 초가 걸릴 수 있는 시나리오(예: 대규모 모노레포 작업 시)가 있으며, 이로 인해 소스 제어 보기가 새로 고쳐지는 데 지연이 발생합니다.
이번 마일스톤에서는 git status가 완료되기 전에 소스 제어 보기가 일부 Git 작업(스테이징, 스테이징 해제, 변경 내용 삭제, 커밋)에 대해 낙관적으로 업데이트되도록 변경되었습니다. 이를 통해 더 빠른 소스 제어 보기를 제공합니다.
새로운 기능은 기본적으로 활성화되어 있지만 git.optimisticUpdate: false를 사용하여 비활성화할 수 있습니다.
커밋 작업 버튼 다듬기
커밋 작업 버튼이 보조 커밋 명령(예: **커밋 및 동기화**)을 실행할 때 버튼 레이블이 이제 실행 중인 명령을 올바르게 반영합니다. **커밋** 버튼은 진행률을 나타내는 애니메이션도 표시합니다.
터미널
터미널 빠른 수정 개선
터미널 빠른 수정은 이제 편집기의 경험에 맞춰 코드 액션 컨트롤에 표시됩니다.

터미널 드롭다운의 작업 작업
작업 실행 및 **작업 구성** 명령이 터미널 드롭다운에 나타나 검색 가능성과 접근성을 높였습니다.

원격 개발
원격 터널이 이제 VS Code Stable에서 미리 보기 기능으로 제공됩니다. 원격 터널을 사용하면 언제 어디서든 어떤 장치에서든 VS Code로 자신의 컴퓨터에 안전하게 액세스할 수 있습니다. 원격 터널 액세스를 활성화하려면 다음 중 하나를 수행하십시오.
- 계정 메뉴 또는 명령 팔레트에서 **원격 터널 액세스 켜기**를 선택합니다.
- VS Code가 설치되어 있고 PATH에 있는 컴퓨터에서
code tunnel을 실행합니다. - 최신 VS Code CLI를 다운로드하고
./code tunnel을 실행합니다.
터널 액세스가 켜지면 어느 장치에서든 vscode.dev를 사용하여 또는 VS Code 데스크톱 내의 원격 - 터널 확장 프로그램을 사용하여 컴퓨터에 연결할 수 있습니다.
자세한 내용은 기능 발표 블로그 게시물 또는 원격 터널 설명서를 참조하십시오.
테마: Codesong (vscode.dev에서 미리보기)
참고: 독립 실행형
code-serverCLI를 사용한 경우 이제 대신 VS Code CLI(최신 VS Code 데스크톱 또는 위에서 언급한 독립 실행형 다운로드를 통해)를 사용해야 합니다.
디버깅
JavaScript 디버깅
console.profile 지원
JavaScript 디버거는 이제 console.profile을 지원합니다. 디버거에서 실행될 때 console.profile()과 console.profileEnd() 사이의 코드에 대한 CPU 프로필이 수집됩니다.
console.profile();
doSomeExpensiveWork();
console.profileEnd();
결과로 생성된 .cpuprofile 파일은 작업 공간 폴더에 저장되며 VS Code의 내장 프로필 뷰어를 사용하여 열고 볼 수 있습니다.
중첩된 소스맵 지원
때로는 특히 모노레포 설정에서 소스 코드가 한 번 컴파일된 후 다시 컴파일되거나 번들링될 수 있습니다. 많은 경우, 이로 인해 결과 번들의 소스맵이 첫 번째 단계에서 생성된 컴파일된 파일을 참조하게 됩니다.
JavaScript 디버거는 이제 소스맵을 자동으로 재귀적으로 확인하므로 추가 단계 없이 원본 소스 파일을 디버깅할 수 있습니다.
serverReadyAction에 killOnServerStop 속성 추가
launch.json의 serverReadyAction 기능은 웹 서버를 시작하는 디버그 세션을 시작하고 서버가 시작되면 해당 서버 URL로 이동하는 브라우저를 자동으로 디버깅할 수 있도록 합니다. 새로운 속성 killOnServerStop이 있으며, 이 속성을 true로 설정하면 원래 서버 디버그 세션이 중지될 때 자동으로 시작된 새 브라우저 디버그 세션도 중지됩니다.
예를 들어,
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js",
"serverReadyAction": {
"pattern": "listening on port ([0-9]+)",
"uriFormat": "https://:%s",
"action": "debugWithEdge",
"killOnServerStop": true
}
}
위 예시에서 원래 프로그램 시작 디버그 세션이 중지되면 자동으로 시작된 Edge 디버그 세션도 중지됩니다.
포커스된 디버그 세션에 대한 예외 중단점 표시
두 가지 다른 유형의 디버그 세션을 실행할 때 예외 중단점을 관리하는 것이 이전에는 잘 작동하지 않았습니다. 이제 **호출 스택** 보기에서 디버그 세션이 포커스될 때 해당 세션의 디버그 유형에 대한 올바른 중단점 세트가 표시됩니다.

주석
comments.visible
새 설정 comments.visible을 사용하여 편집기 주석(주석 표시줄 및 편집기 내 주석 미리 보기)을 끌 수 있습니다. **주석: 편집기 주석 토글** 명령은 세션 중에 편집기 주석을 켜고 끄는 데 계속 사용할 수 있습니다. **주석** 보기에서 주석을 선택하면 항상 주석이 켜집니다.
주석 보기 배지
주석 보기에는 해결되지 않은 주석 수를 나타내는 배지가 표시됩니다.

작업
문제 매처 'search' 파일 위치 메서드
이전에는 문제 매처가 fileLocation 속성을 통해 문제가 있는 파일을 정확히 어디에서 찾아야 하는지 알아야 했습니다. 지원되는 메서드는 absolute, relative 또는 autoDetect(상대 경로를 먼저 확인한 후 실패 시 절대 경로 확인)였습니다.
그러나 중첩된 하위 디렉터리에 스크립트가 있는 작업 영역에서는 다른 스크립트가 파일 경로를 통합된 방식으로 보고하는 경우가 드물기 때문에(예: 작업 영역의 기본 디렉터리에 상대적) 작업을 설정하기 어려웠습니다.
이 문제를 해결하기 위해 search라는 새로운 파일 위치 메서드가 있습니다. 이 메서드를 사용하면 캡처된 경로를 찾기 위해 재귀적 파일 시스템 검색이 실행됩니다.
아래 예시는 search 파일 위치 메서드를 설정하는 방법을 보여줍니다(모든 매개변수는 선택 사항).
"problemMatcher": {
// ...
"fileLocation": [
"search",
{
"include": [ // Optional; defaults to ["${workspaceFolder}"]
"${workspaceFolder}/src",
"${workspaceFolder}/extensions"
],
"exclude": [ // Optional
"${workspaceFolder}/extensions/node_modules"
]
}
],
// ...
}
참고: 사용자는 **시간이 많이 소요되는 파일 시스템 검색**(예: node_modules 디렉터리 내부 검색)을 유발하지 않도록 주의하고 exclude 속성을 적절하게 설정해야 합니다.
언어
TypeScript 4.9
VS Code는 이제 TypeScript 4.9과 함께 제공됩니다. 이 주요 업데이트에는 satisfies 연산자 및 자동 접근자와 같은 새로운 TypeScript 언어 기능이 포함됩니다. 도구 측면에서는 파일 감시를 개선하고 기타 여러 수정 및 개선 사항을 적용했습니다.
이 업데이트에 대한 자세한 내용은 TypeScript 4.9 발표를 확인하십시오.
반환에서 정의로 이동
JavaScript 및 TypeScript는 이제 return 키워드에서 **정의로 이동**을 실행하여 반환 중인 함수 맨 위로 빠르게 이동할 수 있습니다. 이는 길거나 복잡하거나 매우 중첩된 함수를 다룰 때 유용합니다. 이 기능을 위해 **정의로 이동** 명령/키 바인딩(F12)을 사용하거나 return 키워드를 Cmd/Alt + 클릭하여 사용할 수 있습니다.
노트북
커널 선택기 실험: 가장 최근에 사용한 커널
새로운 노트북 커널 선택기는 가장 최근에 사용한 커널을 선택기 상단에 표시합니다. 이것은 notebook.kernelPicker.type 설정을 mru로 설정하여 활성화할 수 있는 옵트인 실험입니다.
사용하지 않은 커널은 **다른 커널 선택...**이라는 보조 선택기로 이동됩니다. 이 선택기는 최신 Jupyter 확장 프로그램이 설치된 경우 모든 커널을 소스별(예: Jupyter 커널, Python 환경 등)로 그룹화합니다.

피드백을 환영하며 VS Code 리포지토리에 이슈를 생성할 수 있습니다.
웹용 VS Code
소스 제어
웹용 VS Code는 이제 GitHub 및 Azure Repos 리포지토리를 편집할 때 다음 설정을 지원합니다.
"git.branchRandomName.enabled"- 웹용 VS Code에서 브랜치를 만들 때 임의의 브랜치 이름을 생성합니다."git.branchRandomName.dictionary"- 웹용 VS Code에서 브랜치를 만들 때 임의의 브랜치 이름을 생성하기 위한 단어 사전을 지정합니다."git.closeDiffOnOperation"- 커밋, 스테이징, 스테이징 해제와 같은 소스 제어 작업을 수행한 후 차이 편집기를 닫습니다.
또한 웹용 VS Code는 상태 표시줄과 브랜치 선택기에 보호된 브랜치에 대한 잠금 아이콘을 표시하여 데스크톱용 VS Code의 경험과 일치시킵니다.

마지막으로 웹용 VS Code의 소스 제어 작업 버튼을 사용하여 변경 내용을 커밋하고 원격 리포지토리로 직접 푸시할 수 있습니다.

커밋하기 전에 변경 내용을 확인하려면 작업 버튼 드롭다운의 보조 **계속 작업...** 작업을 사용하여 현재 변경 내용을 다른 개발 환경으로 가져갈 수도 있습니다.
계속 작업 개선
GitHub 또는 Azure Repos 리포지토리에 있을 때 명령 팔레트에서 작업 변경 내용을 특정 개발 환경으로 가져갈 수 있는 편리한 원스텝 명령이 이제 제공됩니다.
- 새 Codespace에서 계속 작업
- 로컬 복제본에서 계속 작업
- VS Code 데스크톱에서 원격 리포지토리에서 계속 작업

또한 **편집 세션**을 **클라우드 변경 내용**으로 이름을 변경하여 클라우드에 작업 변경 내용을 저장하는 것과 관련이 있음을 명확히 했습니다.
확장 프로그램 기여
Jupyter
노트북 셀 디버깅을 위한 "내 코드만"
"내 코드만" 디버그 기능은 디버거가 Python 라이브러리의 코드를 단계별로 실행할지, 아니면 소스 코드만 단계별로 실행할지 결정할 수 있도록 합니다. 이 기능은 기본적으로 노트북 셀을 디버깅할 때 활성화되지만, "jupyter.debugJustMyCode": false로 설정하여 비활성화하고 라이브러리 코드를 단계별로 실행할 수 있습니다. 최상의 경험을 위해 환경의 debugpy를 >=1.6.3으로 업그레이드하십시오. 이전에는 debugJustMyCode 설정이 대화형 창에서 디버깅할 때만 존중되었지만 이제 노트북 편집기에서도 사용할 수 있습니다.
노트북 셀 디버그 세션 다시 시작 지원
디버그 도구 모음의 **다시 시작** 명령은 현재 디버그 세션을 다시 시작합니다. 이전에는 노트북 디버그 세션에서 오류가 발생했지만 이제는 지원됩니다. 안타깝게도 대화형 창에서는 제대로 지원되지 않습니다.
이 기능은 디버그, 셀 편집 후 디버그 세션을 다시 시작하여 편집된 내용으로 셀을 다시 디버그하는 워크플로에서 특히 유용합니다.
원격 개발 확장 프로그램
원격 개발 확장 프로그램을 사용하면 컨테이너, 원격 머신 또는 Linux용 Windows 하위 시스템(WSL)을 완전 기능 개발 환경으로 사용할 수 있습니다. 이번 릴리스의 주요 내용은 다음과 같습니다.
- 개발 컨테이너 GPU 지원
- 개발 컨테이너 Cygwin / Git Bash 소켓 포워딩
- 원격 - 터널 확장 프로그램 - SSH 없이 원격 머신에 연결합니다.
확장 프로그램의 새로운 기능 및 버그 수정은 원격 개발 릴리스 노트에서 확인할 수 있습니다.
GitHub Pull Requests 및 Issues
작업, 생성 및 관리할 수 있는 GitHub 끌어오기 요청 및 문제 확장에 대한 추가 작업이 이루어졌습니다. 주요 내용은 다음과 같습니다.
- 영구 링크 명령에 대한 노트북 지원.
- 끌어오기 요청 검사 상태(예: CI 진행 중, 검토 필요, CI 실패 등)가 끌어오기 요청 트리 보기에 표시됩니다.
- PR에 대한 vscode.dev 링크는 끌어오기 요청 개요에서 복사할 수 있습니다.
- 끌어오기 요청에서 다음 차이점으로 이동 명령은 체크아웃된 PR의 다음 차이점으로 파일을 이동합니다.
확장 프로그램 0.56.0 릴리스의 변경 로그를 확인하여 다른 주요 내용을 살펴보십시오.
미리 보기 기능
프로필
커뮤니티에서 가장 많이 요청하는 기능 중 하나인 VS Code의 **프로필**을 지원하기 위해 지난 몇 달간 노력했습니다. 이 기능은 workbench.experimental.settingsProfiles.enabled 설정을 통해 미리 보기로 제공됩니다. 사용해보고 vscode 리포지토리에 이슈를 생성하거나 이슈 #116740에 댓글을 달아 피드백을 제공해 주십시오.
프로필 공유
이제 프로필을 GitHub의 gist로 내보내어 공유할 수 있습니다. VS Code는 GitHub 계정을 사용하여 비밀 gist를 생성하고 다른 사람과 공유할 수 있는 링크를 제공합니다. 해당 링크를 열면 VS Code에서 공유 프로필을 설치할지 묻습니다. 프로필을 내보내거나 가져올 때 VS Code에서 미리 보기를 표시하여 각각 내보내거나 가져올 데이터를 검토하고 선택할 수 있습니다.
GitHub으로 프로필 내보내기 후 다른 사람과 공유하기 위한 링크 복사 방법 동영상입니다.

공유 링크를 열어 프로필을 가져오는 방법을 보여주는 동영상입니다.

확장 프로그램 서명 및 확인
11월 중순부터 Visual Studio Marketplace에 업로드되는 모든 VS Code 확장은 VS Marketplace에서 서명됩니다. 이 과정을 리포지토리 서명이라고 합니다. 확장 프로그램 설치 및 업데이트 시마다 VS Code는 확장 프로그램 패키지 서명을 확인합니다. 서명 및 서명 확인을 통해 확장 프로그램 패키지의 무결성과 진위성을 보장할 수 있습니다.
서명 확인은 현재 VS Code Insiders에서만 수행됩니다. 문제가 발견되면 vscode 리포지토리에 이슈를 만들어 알려주시기 바랍니다. extensions.verifySignature를 false로 설정하여 서명 확인을 옵트아웃할 수 있습니다. 향후 몇 달 안에 VS Code Stable에서 서명 확인을 활성화할 예정입니다.
리포지토리 서명 외에도 확장 프로그램 게시자 서명 작업도 시작하고 있습니다.
웹에서의 Python 실행
실험적인 Python for the Web 확장 프로그램에 디버깅 지원을 추가했습니다. 디버거는 다음 기능을 지원합니다.
- 중단점 설정
- 함수 안으로, 밖으로 단계별 실행
- 모듈 간 디버그
- 디버그 콘솔에서 변수 평가
- 통합 터미널에서 프로그램 디버그
아래 스크린샷은 Hello World 프로그램 디버깅을 보여줍니다.

참고: 확장 프로그램을 사용하려면 브라우저 URL에 ?vscode-coi= 쿼리 매개변수를 추가해야 합니다.
확장 프로그램 작성
선언된 확장 프로그램 기여에 대한 암시적 활성화 이벤트
이번 마일스톤에서는 확장 프로그램이 package.json에 특정 확장 프로그램 기여를 선언하는 경우 명시적으로 활성화 이벤트를 나열할 필요가 없어졌습니다.
이전에는 확장 프로그램이 package.json 파일에 명령 mycommand를 기여한다고 선언하면 해당 명령이 성공적으로 실행되도록 package.json의 activationEvents 필드에 해당 onCommand:mycommand 활성화 이벤트를 나열해야 했습니다. 이는 번거롭고 오류가 발생하기 쉬우며 package.json 파일이 커질 수 있었습니다.
VS Code는 이제 다음 확장 프로그램 기여 지점에 대해 활성화 이벤트를 자동으로 채웁니다.
| 기여 지점 | 추론된 활성화 이벤트 |
|---|---|
commands |
onCommand |
authentication |
onAuthenticationRequest |
languages |
onLanguage |
customEditors |
onCustomEditor |
views |
onView |
확장 프로그램 작성자는 이제 이러한 추론된 활성화 이벤트를 확장 프로그램에서 안전하게 제거할 수 있습니다. 그렇게 하는 경우 VS Code 엔진 요구 사항을 업데이트하여 이전 버전의 VS Code와 호환되는 것으로 간주되지 않도록 하십시오.
"engines": {
"vscode": "^1.74.0"
},
로그 출력 채널
이번 마일스톤에서는 LogOutputChannel API를 최종 확정했습니다. 이제 이 API를 사용하여 확장 프로그램의 메시지를 로깅하는 데 사용될 로그 출력 채널을 만들 수 있습니다.
또한 env 네임스페이스의 logLevel 속성과 onDidChangeLogLevel 이벤트를 최종 확정하여 애플리케이션의 현재 로그 수준을 나타내고 애플리케이션의 로그 수준이 변경될 때 이벤트를 발생시킵니다.
모든 웹뷰에 대한 일관된 출처
지난 반복의 작업에 따라, VS Code의 모든 웹뷰는 이제 사용자 지정 출처를 유지하려고 시도합니다. 1.74에서는 사용자 지정 편집기에서 사용되는 웹뷰에도 이 기능이 확장되었습니다.
이는 웹뷰 콘텐츠를 더 많은 경우에 캐시할 수 있도록 하여 성능을 향상시킵니다. 확장 프로그램 작성자가 알아야 할 자세한 내용과 고려 사항은 이전 릴리스 노트를 참조하십시오.
확장 프로그램 README의 비디오 태그 지원
이제 확장은 README에 <video> 태그를 사용할 수 있습니다. 비디오는 VS Code Marketplace 및 VS Code의 확장 보기 페이지 모두에서 지원됩니다. .gif에 비해 비디오 파일은 품질이 높고 종종 크기도 작습니다. 오디오도 포함할 수 있습니다!
VS Code 자체에서는 특정 비디오 및 오디오 형식만 지원된다는 점을 유의하십시오. 현재 <video> src 및 poster에 대해 상대 경로 대신 전체 경로를 사용해야 합니다.
주석 스레드 추가 작업
새로운 메뉴 위치 comments/commentThread/additionalActions를 통해 확장은 주석 스레드에 항상 표시되는 버튼을 기여할 수 있습니다.

vsce에서 @vscode/vsce로 이름 변경
VS Code의 확장 관리 도구인 vsce가 @vscode/vsce로 이름이 변경되었습니다. 라이브러리로 도구를 사용하는 모든 사용자에게는 호환되지 않는 변경 사항입니다. CLI 도구는 여전히 vsce라고 하며 npm install -g @vscode/vsce를 통해 설치할 수 있습니다.
디버그 어댑터 프로토콜
디버그 어댑터 프로토콜에 몇 가지 명확화 및 새 속성이 추가되었습니다.
DataBreakpointInfo요청에 새로운 선택적frameId속성이 추가되었습니다. 클라이언트는 이 플래그를 사용하여name변수를 포함하는 스택 프레임을 지정할 수 있습니다.readMemory요청에 대한 파일 끝 동작이 이제 지정되었습니다.
엔지니어링
속성 및 메서드의 이름 맹글링
제품 빌드에서 속성 및 메서드의 이름이 맹글링되었습니다. 이로 인해 기본 번들의 크기가 약 13%(-1.5MB) 감소했으며 코드 로딩 시간은 약 5% 단축되었습니다.
GitHub & Microsoft 인증 확장 프로그램의 번들 크기 개선
이 두 확장 프로그램의 번들 크기는 제공하는 기능과 많은 경우(예: vscode.dev) 시작 시 중요도를 고려할 때 예상보다 컸습니다. 이번 마일스톤에서는 이 확장 프로그램의 크기를 줄이는 데 집중했으며 그 결과는 다음과 같습니다.
- GitHub 인증: 93KB -> 64.9KB
- Microsoft 인증: 97KB -> 57.7KB
이는 다음을 통해 달성되었습니다.
- Node.js 및 웹에서 쉽게 사용할 수 있는 기능(예: Crypto.randomUUID()를 위해
uuid제거)을 제공하는 Node 모듈에 더 이상 의존하지 않고 번들링하지 않았습니다. - Node.js 및 웹 모두에서 사용하는 대신 Node.js에서만
node-fetch를 사용했습니다. - 크기가 상당히 감소한 최신 버전의
@vscode/extension-telemetry를 채택했습니다.
이 과정에서 기능 손실은 없었으며, 크기가 감소함에 따라 이러한 확장 프로그램은 더 빠르고 효율적으로 가져오고 로드됩니다.
Electron 샌드박스 여정
최근 "Migrating VS Code to Process Sandboxing" 블로그 게시물에서 Electron의 샌드박스 활성화에 대한 진행 상황을 확인할 수 있습니다. 이 자세한 글은 기술 타임라인을 제시하고 VS Code 샌드박싱을 지원하기 위해 수행된 점진적인 변경 사항을 설명합니다.
VS Code 샌드박스 모드를 사용해 보려면 설정에서 "window.experimental.useSandbox": true를 설정하면 됩니다. 기능상 차이는 없을 것으로 예상되지만, 문제가 발견되면 저희에게 보고해 주시기 바랍니다.
Windows에서 창 제어 오버레이 기본값으로 다시 활성화
창 제어 오버레이(WCO)가 기본값으로 다시 활성화되었습니다. 이전에 8월에 활성화되었으나, 오른쪽에서 왼쪽으로 쓰는 시스템 언어를 사용하는 사용자에게 WCO가 잘못된 위치에 렌더링되어 **파일** 및 **편집** 메뉴 항목을 가리는 문제가 있어 다시 비활성화되었습니다.
주요 문제는 VS Code가 애플리케이션 로캘을 Electron으로 전달하지 않아 Electron이 시스템 로캘을 사용하여 WCO를 배치할 위치를 결정했다는 것입니다. 그러나 VS Code는 시스템 언어를 얻고 언어 팩 추천을 결정하기 위해 Electron의 app.getLocale() API에 의존했으며, 애플리케이션 로캘을 Electron으로 전달하면 app.getLocale()이 시스템 언어 대신 해당 로캘을 반환했습니다.
이 문제를 해결하기 위해 Electron에 새로운 app.getPreferredSystemLanguages() API를 추가하여, 로캘을 Electron으로 전달한 후에도 시스템 언어를 얻어 VS Code의 언어 팩 추천에 사용할 수 있도록 하고 WCO는 오른쪽에 유지하도록 했습니다.

기본 제공 확장 프로그램이 이제 vscode-nls 대신 새로운 l10n API를 사용합니다.
지난달에 새로운 국제화(l10n) API를 안정화했습니다. 이번 달에는 Microsoft/vscode 리포지토리에 있는 모든 확장 프로그램에 해당 API를 적용했습니다. 언어 서버와 팀 소유의 다른 확장 프로그램(JS Debug, Python, Jupyter Notebooks 등)을 vscode-nls 대신 @vscode/l10n을 사용하도록 마이그레이션해야 하지만, 모든 확장 프로그램에 대한 단일 국제화 스토리를 향해 올바른 방향으로 나아가고 있습니다.
주요 수정 사항
- 166171 확장 프로그램 팁 모달에서 기본 스크롤 바 제거.
- microsoft/vscode-jupyter#11745 변수 뷰어가 느림과 불안정을 유발함
감사합니다
마지막으로, VS Code 기여자에 대한 진심 어린 감사의 말씀을 전합니다.
이슈 추적
이슈 추적에 대한 기여
풀 리퀘스트
vscode 기여
- @Albert-cord: feat: wordBreak editorOption 추가 및 lineBreakComputer 함수에 사용 PR #156242
- @andschwa (Andy Jordan): Windows PowerShell의 셸 통합 지원 PR #167023
- @babakks (Babak K. Shandiz)
- 🐛 멀티 루트 워크스페이스에서 새 터미널 생성 시 반복되는 CWD 항목 수정 PR #153204
- 🎁 디버그 구성에
killOnServerStop추가 PR #163779 - 🎁 작업에서 파일 위치 메서드에
search추가 PR #165156 - 💄 디버그 모드의 URI/링크 호버에 파일 시스템 경로 포함 PR #165709
- 🔨 명령 팔레트에 "빵 부스러기 포커스" 추가 PR #166461
- @CGNonofr (Loïc Mangeonjean): 독립 실행형 구성: 리소스 및 언어 사용 PR #146522
- @chengluyu (Luyu Cheng): 변수 글꼴 지원 (#_153291) PR #153968
- @cmarincia (Catalin Marincia): editor.fontFamily에 문자열 목록 옵션 추가 PR #164289
- @d0ggie (Pekka Seppänen): 괄호 일치 CSS 구문 복원 (#_166109) PR #166141
- @dmartzol (Daniel Martinez Olivas)
- links.ts에서 links.css로 CSS 규칙 이동 PR #166258
- CSS 규칙 이동 PR #166532
- @ecstrema (Rémi Marche): 편집기 상태 변경, 일치 후 중단 PR #166283
- @felixlheureux (Felix L'Heureux): undefined 또는 null일 때 값을 빈 문자열로 재설정 PR #165721
- @g1eny0ung (Yue Yang): fix: 바꾸기 입력에서 텍스트 오버레이 PR #162036
- @GauravB159 (Gaurav Bhagchandani)
- 편집기 스크롤 막대에 CSS 변수 사용 PR #165464
- 테마 참가자 등록 리팩토링 PR #165576
- @gjsjohnmurray (John Murray): IW 명령 팔레트 항목 텍스트 수정 (#_164860) PR #164863
- @guttyon: 입력 메서드 가로채기 임시 비활성화. PR #159699
- @HiDeoo: QuickPickItem JSDoc 링크 vscode.d.ts에서 수정 PR #164474
- @hughlilly (Hugh Lilly)
- Markdown 언어 미리보기 설정 설명 PR #165109
files.exclude설명에explorer.excludeGitIgnore관련 내용 추가 PR #165111
- @jasonwilliams (Jason Williams): 잘못된 작업 그룹을 실행했던 #154064 수정 PR #164983
- @JayBazuzi (Jay Bazuzi): 두 번째 관리자 인스턴스를 시작할 때 오류 메시지 변경 PR #166146
- @Jaykul (Joel Bennett): PowerShell 통합 스크립트 수정 #165022 PR #165023
- @jeanp413 (Jean Pierre)
Terminal: Focus Terminal Tabs view명령이 작동하지 않는 문제 수정 PR #164408- 기본 빌드 작업에 대해 작업 재연결 상태가 작동하지 않는 문제 수정 PR #165110
- 터미널 찾기 위젯에 결과 수가 표시되지 않는 문제 수정 PR #166902
- @jkei0: selections.ts에서 selections.css로 CSS 규칙 이동 PR #166407
- @jzyrobert (Robert Jin): explorer.autorevealExclude 설정 추가 PR #136905
- @laurentlb (Laurent Le Brun)
- 주석 보기: 해결되지 않은 주석 수를 표시하는 배지 추가 PR #164743
- 원격 분석: 명령 실행 시간 기록 PR #165599
- @LoopThrough-i-j (Debayan Ganguly): Fix: 새 md 파일이 맨 위로 스크롤됨. PR #164999
- @MarkZuber (Mark Zuber): bootstrap-node.js 업데이트하여 Array.isArray 확인 PR #165289
- @marrej (Marcus Revaj): CommentThread에 추가 작업 추가 PR #162750
- @Mingpan: 사이드 바이 사이드 비교 보기에서 화살표 수정 PR #165423
- @miyaokamarina (Marina Miyaoka): Markdown 미리보기에서 유니코드 줄 바꿈 사전 처리 안 함 PR #166026
- @MonadChains (MonadChains)
- 셀 실행 완료 시 오디오 큐 구현 PR #165442
- 사용자 지정 zsh_history 무시 수정 PR #166813
- @mustard-mh (Huiwen): 작업 상태 잘못됨 수정 #163393 PR #163952
- @n-gist (n-gist): 스니펫 겹쳐쓰기 기능 수정 PR #165871
- @najmiehsa
- CSS 변수를 registerThemingParticipant 대신 사용 - 미니맵 뷰파트 PR #165465
- CSS 변수를 registerThemingParticipant 대신 사용 - 눈금자 뷰파트 PR #165466
- @nisargjhaveri (Nisarg Jhaveri): 여러 디버거의 다른 예외 중단점을 한 번에 표시하도록 허용 PR #158355
- @Okeanos (Nikolas Grottendieck): Windows에서 Git Bash 통합 개선 (#_151105) PR #165428
- @pafernandez-oesia: #165480 수정 PR #165486
- @pingren (Ping): 노트북 미리보기에서 KaTeX 방정식 번호 수정 PR #156276
- @prashantvc (Prashant Cholachagudda): 확장 프로그램 검색 원격 분석을 위해 sessionId를 machineId로 변경 PR #166355
- @QaidVoid: registerThemingParticipant 줄이기 PR #165575
- @r3m0t (Tomer Chachamu)
- autoLockGroups 설정 UI의 체크박스 수정 (Fixes #164367) PR #164369
- TestItem.error 및 TestItem.sortText 업데이트 수정 (Fixes #166190) PR #166191
- @ramoncorominas (Ramón Corominas): messages.es.isl 업데이트하여 컨텍스트 메뉴 단축키 추가 PR #166010
- @rwe (Robert Estelle)
- shellIntegrationAddon.ts: iTerm2가 아닌 VSCodeOScPt 메시지만 디코딩 PR #165579
- shellIntegration.fish: "E"(실행된 명령) 및 "P"(속성 KV) 코드의 값 이스케이프 PR #165631
- shellIntegration-bash.sh: "E"(실행된 명령) 및 "P"(속성 KV) 코드의 값 이스케이프 PR #165632
- shellIntegration-rc.zsh: "E"(실행된 명령) 및 "P"(속성 KV) 코드의 값 이스케이프 PR #165633
- shellIntegration.ps1: "E"(실행된 명령) 및 "P"(속성 KV) 코드의 값 이스케이프 PR #165634
- shellIntegrationAddon:
deserializeMessage()구현 오류 수정 + 테스트 추가 PR #165635
- @sandersn (Nathan Shively-Sanders): webServer를 TypeScript에서 VS Code로 복사 PR #165771
- @SethFalco (Seth Falco): feat: 멀티 커서 제한 설정 추가 PR #149703
- @SphinxKnight (SphinxKnight): Nit: 팁 블록 대소문자 수정 PR #165223
- @ssigwart (Stephen Sigwart): JSDoc이 포함된 코드 붙여넣기 시 원치 않는 추가 공백 수정 PR #136579
- @Timmmm (Tim): 고정 탭 옵션 수정 PR #157543
- @weartist (Han)
- #165169에 대한 CSS 규칙 이동 PR #165595
- #165169 hover.ts에서 hover.css로 CSS 규칙 이동 PR #166095
- inPlaceReplace.ts에서 inPlaceReplace.css로 CSS 규칙 이동 PR #166098
- 어댑터 CSS 변수 PR #166279
- diffEditor에 대한 CSS 변수 이동 PR #166467
- @yiliang114 (易良):
remote/web/package.json의browser필드만 문자열로 사용 PR #165163 - @zeroimpl (Daniel Fiori): 탭 크기와 들여쓰기 크기 분리 PR #155450
- @zhuowei: webview: PWA의 webview에서 Ctrl+W 및 Ctrl+N 무시 PR #164981
vscode-css-languageservice에 대한 기여
- @babakks (Babak K. Shandiz): ✋ 공급업체별 의사 요소를 포함하는 컨텍스트에서 누락된 표준 속성 무시 PR #303
- @johnsoncodehk (Johnson Chu)
vscode-eslint 기여
- @aleclarson (Alec Larson): 여러 줄 밑줄 긋기 방지 옵션 도입 PR #1528
- @MariaSolOs (Maria José Solano): 규칙 비활성화 시 -- 검사 PR #1506
- @uhyo (uhyo): Flat Config의 실험적 지원 추가 PR #1522
vscode-js-debug 기여
- @xai (Olaf Lessenich): fix: 런처에서 플랫폼 선호 대소문자 사용 PR #1449
vscode-json-languageservice 기여
vscode-pull-request-github 기여
- @joshuaobrien (Joshua O'Brien): TimelineEvent에서 유형을 좁혀 태그된 유니온으로 처리할 수 있도록 함 PR #4160
debug-adapter-protocol에 기여
- @sztomi (Tamás Szelei): sdks.md 업데이트 - dap-rs 포함 PR #349
- @WardenGnaw (Andrew Wang): EvaluateArguments 컨텍스트 변수를 열거형 끝으로 이동 PR #346
devcontainers/cli에 대한 기여
- @amurzeau (Alexis Murzeau): Windows에서 Cygwin / Git Bash 소켓 포워딩 처리 PR #82
- @natescherer (Nate Scherer): devcontainer build에 --output 옵션 추가 PR #166
- @stuartleeks (Stuart Leeks): --additional-features 옵션 추가 PR #171
- @chris-major-improbable (Chris Major): GPU 요구 사항 및 NVIDIA 확장 자동 감지 PR #173
- @davidwallacejackson (David Jackson): 기능 권한 정규화 PR #233