2020년 6월 (버전 1.47)
업데이트 1.47.1: 이 업데이트는 이 보안 문제를 해결합니다.
업데이트 1.47.2: 이 업데이트는 이 이슈들을 해결합니다.
업데이트 1.47.3: 이 업데이트는 이 이슈들을 해결합니다.
다운로드: Windows: x64 Arm64 | Mac: Intel | Linux: deb rpm tarball snap
Visual Studio Code의 2020년 6월 릴리스에 오신 것을 환영합니다. 이번 버전에는 여러분이 좋아할 만한 여러 업데이트가 포함되어 있습니다. 주요 내용으로는
- 접근성 향상 - 새로운 화면 판독기 기능.
- Windows ARM 빌드 - Windows on ARM이 이제 안정 버전으로 제공됩니다.
- 새로운 JavaScript 디버거 - 터미널에서 디버깅, 프로파일링 지원.
- 소스 제어 통합 보기 - 모든 리포지토리가 단일 보기로 표시됩니다.
- 보류 중인 변경 사항 보기 및 정렬 - 파일을 트리 또는 목록으로 보고, 이름, 경로 또는 상태별로 정렬합니다.
- 설정 편집기에서 복잡한 설정 편집 - 설정 편집기에서 객체 설정을 편집합니다.
- 새로운 HexEditor 확장 프로그램 - VS Code 내에서 16진수 형식으로 파일을 편집합니다.
- Notebook UI 업데이트 - 향상된 UX 및 실행 취소/다시 실행 지원.
- 원격 개발 튜토리얼 - SSH, 컨테이너 내부, WSL에서 개발하는 방법을 배웁니다.
- macOS용 Java Pack 설치 프로그램 - macOS에서 VS Code로 Java 개발을 시작할 수 있습니다.
이 릴리스 노트를 온라인으로 읽으려면 code.visualstudio.com의 업데이트로 이동하십시오.
라이브로 함께하세요. 7월 13일 월요일 오전 9시(태평양 표준시, 런던 오후 5시)에 VS Code 팀 라이브스트림(VS Code team's livestream)에서 이번 릴리스의 새로운 기능을 시연하고 질문을 나눠보세요.
Insider: 새로운 기능을 가능한 한 빨리 사용해 보고 싶으신가요? 야간 빌드인 Insider를 다운로드하여 최신 업데이트를 즉시 사용해 볼 수 있습니다. 최신 Visual Studio Code 뉴스, 업데이트 및 콘텐츠를 보려면 Twitter에서 @code를 팔로우하세요!
접근성
이번 마일스톤에서도 커뮤니티의 도움으로 많은 접근성 이슈를 식별하고 해결할 수 있었습니다. 주요 내용은 다음과 같습니다.
- 파일 탐색기의 축소된 폴더가 이제 확장/축소된 상태와 ARIA 레벨을 올바르게 전달합니다.
- 화면 판독기가 이제 편집기에서 커서 오프셋을 업데이트할 수 있습니다. 결과적으로, 화면 판독기의 "모두 말하기" 명령이 중지 및 다시 시작될 때 더 잘 작동해야 합니다.
- 동일한 ARIA 라이브 메시지가 이제 화면 판독기에 의해 올바르게 다시 읽힙니다.
워크벤치
설정 편집기에서 복잡한 설정 편집
이전에는 설정 편집기를 사용하여 문자열 및 부울과 같은 기본 유형의 설정만 편집할 수 있었고, 더 복잡한 설정 유형은 settings.json을 직접 편집해야 했습니다. 이제 설정 편집기에서 중첩되지 않은 객체 설정을 편집할 수 있습니다. 확장 프로그램 작성자는 이 기능을 사용하여 이러한 종류의 설정을 더 잘 보이게 할 수 있습니다.
이전
설정 편집기에서

그리고 settings.json에서

이후
설정 편집기에서

목록 보기에서 선택하고 포커스 유지
새로운 명령 list.selectAndPreserveFocus를 사용하면 목록에서 항목을 선택하면서 해당 목록의 포커스를 유지할 수 있습니다. 예를 들어, 파일 탐색기와 같은 목록에서 포커스가 파일 편집기로 이동하지 않고 여러 파일을 선택하려는 경우 유용할 수 있습니다.
이 명령은 기본적으로 키보드 단축키에 바인딩되어 있지 않지만, 직접 키 바인딩을 추가할 수 있습니다.
{
"key": "ctrl+o",
"command": "list.selectAndPreserveFocus"
}
안정 Windows ARM 빌드
Windows on ARM용 VS Code가 이제 안정 릴리스(에서 제공)로 제공됩니다! 🎉
드래그 앤 드롭으로 VSIX 설치
VS Code는 이제 확장 프로그램 보기로 VSIX 파일을 드래그 앤 드롭하여 설치하는 것을 지원합니다.
새로운 검색 편집기 명령 인수
새로운 검색 편집기가 어떻게 작동해야 하는지 구성할 수 있도록 검색 편집기 명령(search.action.openNewEditor, search.action.openNewEditorToSide)에 두 가지 새로운 인수가 추가되었습니다.
triggerSearch- 검색 편집기가 열릴 때 검색이 자동으로 실행되는지 여부. 기본값은 true입니다.focusResults- 검색 결과에 포커스를 둘지 또는 쿼리 입력에 포커스를 둘지 여부. 기본값은 true입니다.
예를 들어, 다음 키 바인딩은 검색 편집기가 열릴 때 검색을 실행하지만 검색 쿼리 컨트롤에 포커스를 유지합니다.
{
"key": "ctrl+o",
"command": "search.action.openNewEditor",
"args": { "query": "VS Code", "triggerSearch": true, "focusResults": false }
}
새로운 검색 편집기 컨텍스트 기본값
search.searchEditor.defaultNumberOfContextLines 설정이 기본값 0 대신 1로 업데이트되었습니다. 즉, 검색 편집기의 각 결과 줄 앞뒤에 컨텍스트 줄이 하나씩 표시됩니다. 이전 동작으로 돌아가려면 값을 0으로 되돌리세요.
목록/트리: 동적 가로 스크롤
이전에 존재했던 workbench.list.horizontalScrolling 설정은 이제 워크벤치를 다시 로드할 필요 없이 런타임에 전환할 수 있습니다.
편집기
정규식 대체 시 대소문자 변경
VS Code는 이제 편집기에서 찾기/대체 작업을 수행할 때 정규식 일치 그룹의 대소문자를 변경하는 것을 지원합니다. 이는 \u\U\l\L 수정자를 사용하여 수행됩니다. 여기서 \u와 \l은 단일 문자를 대문자/소문자로 변환하고, \U와 \L은 일치하는 그룹의 나머지 부분을 대문자/소문자로 변환합니다.
예

수정자는 또한 쌓을 수 있습니다. 예를 들어, \u\u\u$1은 그룹의 첫 세 문자를 대문자로 만들고, \l\U$1은 첫 문자를 소문자로, 나머지를 대문자로 만듭니다.
현재 이러한 기능은 편집기의 찾기 컨트롤에서만 지원되며, "파일에서 찾기"에서는 지원되지 않습니다.
디버깅
새로운 JavaScript 디버거
지난 달 Insiders에서 기본 디버거였던 새로운 JavaScript 디버거가 이제 VS Code에서 JavaScript(Node.js 및 Chrome)의 기본 디버거가 되었습니다. 지난 몇 개의 VS Code 변경 로그에서 "미리 보기 기능" 섹션을 건너뛰었다면, 디버거 README의 새로운 기능 섹션에서 최신 정보를 확인할 수 있습니다.
새로운 디버거를 활용하기 위해 설정을 변경하거나 실행 구성을 변경할 필요는 없습니다. 문제가 발생하면 이슈를 열어주세요!
단일 파일 디버깅
오늘날까지 VS Code 디버거는 한 파일이 버튼 클릭으로 쉽게 디버깅될 수 있다는 것을 보여주는 표준적인 방법이 없었습니다. 일부 디버그 확장은 종종 "편집기에서 파일 디버그"라는 디버그 구성을 통해 이를 허용했습니다. 그러나 사용자는 **F5**를 사용하기 전에 디버그 구성 드롭다운 메뉴에서 올바른 구성을 선택해야 했습니다. 다른 디버그 확장은 **F5**에 대한 대체 전략을 구현했습니다. launch.json이 없는 경우 **F5**는 활성 편집기에서 현재 열려 있는 파일을 디버그하려고 시도합니다.
두 접근 방식 모두 쉽게 발견되지 않기 때문에 일부 디버그 확장 프로그램(예: Python)은 편집기 제목 영역에 **실행** 버튼을 추가하기 시작했습니다.
더 나은 접근 방식을 찾지 못했고 이 방법은 새로운 API 없이도 구현할 수 있기 때문에, 표준 방식으로 구현하는 방법에 대한 지침을 작성했습니다. 확장 프로그램 작성자는 "확장 프로그램 작성" 섹션에서 이러한 지침을 찾을 수 있습니다.
사용자는 이 아이콘만 기억하면 됩니다.

편집기 제목 영역의 왼쪽에 하나 또는 둘 다 표시되면 편집기에서 파일을 실행하거나 디버깅하는 것이 한 번의 클릭으로 가능합니다.
더 깔끔한 CALL STACK 보기
일반적인 경우 CALL STACK를 덜 복잡하게 만들기 시작했습니다. CALL STACK 보기에서는 기술적인 이유로 존재하는 디버그 세션 노드를 숨길 수 있으며, 이는 사용자에게 많은 가치를 제공하지 않습니다.
이 기능을 처음으로 선택한 디버그 확장은 새로운 JavaScript 디버거로, 단일 자식 세션만 있는 경우 부모 디버그 세션을 제거할 수 있습니다.

다른 디버그 확장이 이 기능을 따르기를 바랍니다. 아래 새로운 제안 API를 참조하세요.
다음 줄로 이동에 대한 새 명령 별칭 다음 줄로 이동
Visual Studio에서 온 사용자를 위해 다음 줄로 이동 명령을 더 쉽게 찾을 수 있도록 다음 줄로 이동이라는 명령 별칭을 추가했습니다.
다음 줄로 이동이 무엇을 하는지 모른다면: 이 기능은 소스 코드를 실행하지 않고 프로그램 실행을 새 위치로 이동할 수 있게 해줍니다.
호버 시 중단점 경로
중단점 보기에서 소스 중단점을 호버할 때 VS Code는 이제 중단점의 절대 경로를 표시합니다.
작업
pnpm 패키지 관리자 지원
pnpm은 이제 npm.packageManager 설정에서 npm 및 yarn과 함께 스크립트를 실행하는 유효한 옵션입니다.
소스 제어
단일 보기
소스 제어 보기가 단일 보기로 통합되었습니다.

모든 리포지토리가 단일 보기에 렌더링되어 전체 작업 영역 상태를 더 잘 파악할 수 있습니다. 또한, 소스 제어 보기는 패널로 이동할 수 있으며 다른 보기는 소스 제어 보기 컨테이너로 이동할 수 있습니다.
보기 및 정렬
목록 보기 옵션을 사용할 때 소스 제어 보기에서 변경 사항을 이름, 경로(기본값) 및 상태별로 정렬하는 지원을 추가했습니다. 보기 옵션(목록 대 트리)과 정렬 옵션을 컨텍스트 메뉴의 새로운 **보기 & 정렬** 메뉴 항목으로 통합했습니다.

Git: 스쿼시 메시지 복원
일반적인 git merge 명령과 유사하게, 사용자가 git merge --squash 명령을 중간에 있는 경우 SCM 보기가 기본 메시지로 SCM 입력을 복원합니다.
언어
TypeScript 3.9.6
VS Code는 이제 TypeScript 3.9.6을 번들로 제공합니다. 이 마이너 업데이트는 TypeScript 서버가 특정 소스 코드 패턴에서 충돌을 일으킬 수 있는 문제를 포함하여 몇 가지 버그를 수정합니다.
브라우저 지원
대용량 파일 업로드 지원
이제 VS Code 웹 버전으로 대용량 파일 및 폴더를 업로드할 수 있으며, 업로드된 바이트 수와 업로드 속도를 추적할 수 있도록 진행률이 정확하게 보고됩니다.

텍스트 파일 인코딩 지원으로 나아가는 길
이번 마일스톤 동안 웹팩을 활용하여 브라우저에서 파일을 읽고 쓰는 텍스트 인코딩에 대한 완전한 지원을 위해 많은 작업이 이루어졌습니다.
iconv-lite: 인코딩 읽기 및 쓰기jschardet: 텍스트 콘텐츠에서 인코딩 추측
이 작업은 7월에도 계속될 것이며 곧 일반적으로 사용 가능해질 것입니다.
미리 보기 기능
미리보기 기능은 릴리스 준비가 되지 않았지만 사용할 만큼 기능적입니다. 개발 중인 동안 초기 피드백을 환영합니다.
설정 동기화
지난 몇 달 동안 여러 컴퓨터 간에 VS Code 설정을 동기화하는 기능을 지원하기 위해 노력해 왔으며, 이 기능은 Insiders 릴리스에서 미리 볼 수 있습니다.
이제 **동기화된 머신** 보기의 머신 항목에 있는 "동기화 해제" 컨텍스트 메뉴 작업을 사용하여 다른 컴퓨터에서 동기화를 비활성화할 수 있습니다.

동기화 켜기 시 진행률 정보도 개선했습니다.
TypeScript 4.0 지원
이번 반복에서는 TypeScript 4.0에 대한 지원을 계속 개선했습니다. 주요 내용은 다음과 같습니다.
-
편집기에서 사용 중단된 기호 호출을 취소선으로 강조 표시

-
특정 리팩터링이 적용될 수 없는 이유 설명

-
향상된 자동 가져오기 - TypeScript 4.0 블로그 게시물에서 자세히 읽어보세요.
지금 바로 TypeScript 야간 확장 프로그램을 설치하여 이 기능을 사용해 보세요.
대규모 JavaScript 또는 TypeScript 프로젝트가 로드되는 동안 부분 IntelliSense 지원
TypeScript 4.0 베타에는 대규모 JavaScript 또는 TypeScript 프로젝트가 로드되는 동안 기다리는 시간을 줄이는 데 도움이 되는 새로운 기능도 포함되어 있습니다. 작동 방식을 설명하기 위해 현재 버전의 TypeScript가 작동하는 방식에 대한 배경 지식을 먼저 설명해야 합니다.
VS Code에서 JavaScript 또는 TypeScript 파일을 열면 TypeScript 언어 서비스가 해당 파일이 속한 프로젝트를 결정하고 관련 프로젝트를 로드합니다. 때로는 이 프로젝트가 매우 클 수 있습니다. 예를 들어, 수천 개의 TypeScript 파일로 구성된 핵심 VS Code 코드베이스와 같습니다. 프로젝트가 로드되는 동안 VS Code는 문서 개요 가져오기 및 코드 접기 활성화와 같은 기본 구문 작업을 처리할 수 있지만, 전체 프로젝트를 이해하는 데 의존하기 때문에 IntelliSense 또는 기타 고급 언어 기능을 제공할 수는 없습니다. 예를 들어 자동 가져오기를 제공하려면 TypeScript 언어 서비스가 프로젝트의 모든 내보낸 기호를 알아야 합니다.
TypeScript 4.0의 변경 사항을 통해 VS Code는 대규모 프로젝트가 로드되는 동안 IntelliSense 및 기타 고급 언어 기능을 제공할 수 있습니다. 단, 제공할 수 있는 IntelliSense는 전체 프로젝트 대신 현재 파일만 참조하는 것으로 제한됩니다. 즉, 제안 및 **정의로 이동**과 같은 기능은 작동하지만 현재 파일의 제안만 표시되며 현재 파일의 다른 기호로 이동하기 위해 **정의로 이동**만 실행할 수 있습니다.
대규모 JavaScript 및 TypeScript 프로젝트를 사용하는 경우 이 새로운 기능에 대한 피드백을 받고 싶습니다. TypeScript 야간 확장 프로그램을 사용하여 지금 바로 사용해 볼 수 있습니다. 이를 통해 더 완전한 프로젝트 전체 IntelliSense를 사용할 수 있을 때까지 거의 즉시 코딩을 시작할 수 있기를 바랍니다.
코드 작업에 대한 실행 취소/다시 실행
코드 작업 및 리팩터링에 대한 실행 취소 및 다시 실행을 지원하기 위해 노력하고 있습니다. 대표적인 예로 Java 클래스 이름 바꾸기 리팩터링이 있으며, 이는 텍스트 변경을 수행하고 디스크에서 파일을 다시 이름 지정합니다. 이 작업은 이제 실행 취소할 수 있지만 여전히 두 번의 실행 취소를 트리거해야 합니다. 이 기능이 더욱 개선됨에 따라 계속 주시해 주시고 조기 피드백을 제공해 주시기 바랍니다.
확장 프로그램 기여
노트북
VS Code 팀은 Notebook에 대한 네이티브 지원을 계속하고 있습니다. 개발을 돕기 위해 GitHub 이슈 및 풀 리퀘스트를 검색할 수 있는 GitHub Issue Notebooks 확장 프로그램을 만들었습니다. 이 확장 프로그램은 아직 미리 보기 상태이며 VS Code Insiders를 사용해야 하지만, Notebook을 직접 경험할 수 있으며 피드백을 환영합니다.
업데이트된 UX
더욱 간결한 디자인을 위해 Notebook 셀의 시각적 모양을 업데이트했습니다. 선택된 셀에 그림자 윤곽선을 추가하여 선택 상태를 더 명확하게 표시했습니다.

Notebook Hot Exit 지원
확장 프로그램이 백업 및 복원을 처리할 수 있도록 Notebook에 Hot Exit 지원을 추가했습니다. 저장되지 않은 로컬 변경 사항은 이제 확장 프로그램에 의해 직렬화되고 작업 영역이 다시 열릴 때 복원될 수 있습니다.
실행 취소/다시 실행 향상
확장 프로그램이 실행 취소/다시 실행 스택에 기여할 수 있도록 지원을 추가했습니다. 확장 프로그램은 이제 어떤 작업이 실행 취소 가능한지 제어할 수 있습니다. 예를 들어, GitHub 이슈 Notebook에서는 **잠금** 버튼을 선택하여 셀 내용을 읽기 전용으로 만들 수 있으며, 일반적인 실행 취소/다시 실행 명령을 통해 이 작업을 실행 취소/다시 실행할 수도 있습니다.

테마: GitHub 테마
빈 Notebook 생성
새로운 빈 Notebook 파일을 생성하기 위해 **새 파일** 명령(⌘N (Windows, Linux Ctrl+N))을 확장했습니다. 예를 들어, 다음 키 바인딩을 사용하여 GitHub 이슈 Notebook을 빠르게 만들고 쿼리를 실행할 수 있습니다.
{
"key": "cmd+i",
"command": "workbench.action.files.newUntitledFile",
"args": { "viewType": "github-issues" }
}

테마: GitHub 테마
Notebook 색상 토큰
Notebook에 대한 다음 색상 토큰도 추가했습니다.
notebook.cellBorderColor: Notebook 셀의 테두리 색상notebook.cellHoverBackground: 셀에 호버할 때 셀의 배경색notebook.cellInsertionIndicator: Notebook 셀 삽입 표시기의 색상notebook.focusedCellBackground: 셀에 포커스가 맞춰졌을 때 셀의 배경색notebook.focusedCellBorder: 셀에 포커스가 맞춰졌을 때 셀의 위쪽 및 아래쪽 테두리 색상notebook.focusedCellShadow: 셀에 포커스가 맞춰졌을 때 셀 그림자의 색상notebook.focusedEditorBorder: Notebook 셀 편집기의 테두리 색상
Notebook에서 디버깅을 지원하는 방법을 보여주는 두 가지 새로운 샘플
-
이 샘플은 기존 VS Code 디버그 확장을 기반으로 Notebook 디버깅 기능을 구현하는 방법을 보여줍니다.

-
Xeus 커널을 사용한 Jupyter Notebook 디버깅 샘플
이 샘플은 xeus 커널과 디버그 어댑터 프로토콜에 대한 네이티브 지원을 기반으로 Notebook 디버깅 기능을 구현하는 방법을 보여줍니다.

Notebook 확장 프로그램 가이드
VS Code용 Notebook 확장 프로그램을 만드는 데 관심이 있다면, Notebook API에 대한 새로운 가이드가 있습니다. API뿐만 아니라 VS Code Notebook 인프라 세부 정보 및 Notebook 확장 프로그램 개발 모범 사례를 배울 수 있습니다.
원격 개발
컨테이너, 원격 머신 또는 Linux용 Windows 하위 시스템(WSL)을 전체 기능 개발 환경으로 사용할 수 있는 원격 개발 확장에 대한 작업이 계속 진행 중입니다.
1.47의 주요 기능 하이라이트
- 원격 - SSH: 원격 서버가 포트 대신 소켓에서 수신 대기할 수 있습니다.
- 개발 컨테이너: 볼륨에서 리포지토리 열기 프롬프트.
- 개발 컨테이너 및 WSL: 최근 WSL 2에서 개발 컨테이너 사용 블로그 게시물을 확인하세요.
원격 개발 릴리스 노트(Remote Development release notes)에서 새로운 확장 프로그램 기능 및 버그 수정에 대해 알아볼 수 있습니다.
VS Code 원격 개발을 처음 사용하는 경우 다음 소개 튜토리얼로 시작할 수 있습니다.
Azure 계정
Azure 계정 확장 프로그램의 최신 버전은 최신 Azure SDK와 함께 사용할 수 있는 자격 증명 개체를 노출합니다.
GitHub Pull Requests 및 Issues
풀 리퀘스트 및 이슈를 작업, 생성 및 관리할 수 있는 GitHub Pull Requests and Issues 확장 프로그램에 대한 작업이 계속 진행 중입니다. 이번 릴리스의 몇 가지 업데이트는 다음과 같습니다.
- 이슈 보기의 마크다운 호버.
- 새로운 이슈 편집기의 레이블 제안.
- GH-123으로 형식화된 이슈에 대한 호버 지원.
모든 새로운 기능 및 업데이트에 대해 확장 프로그램 0.18.0 릴리스의 전체 변경 로그를 확인할 수 있습니다.
Hex 편집기
HexEditor 확장 프로그램은 VS Code 내에서 네이티브 16진수 편집 경험을 제공하기 위해 계속 개선되고 있습니다. 이번 릴리스의 주요 업데이트에는 간단한 편집 지원(사용자가 실행 취소, 다시 실행, 기존 16진수 셀 편집, 문서 끝에 새 셀 추가 가능)과 이전에 불가능했던 18MB 이상의 파일을 열 수 있게 하는 대용량 파일 최적화가 포함됩니다.

주요 변경 사항의 전체 목록은 CHANGELOG에서 찾을 수 있습니다. 발생한 피드백이나 문제는 vscode-hexeditor 리포지토리에 제출할 수 있습니다.
확장 프로그램 작성
AccessibilityInformation
화면 판독기를 지원하기 위해 TreeItem, StatusBarItem 및 TimelineItem 요소의 AccessibilityInformation을 최종 확정했습니다. AccessibilityInformation에는 label과 role이 포함됩니다. label은 해당 항목에 포커스가 맞춰지면 화면 판독기가 읽어줍니다. 항목의 role은 화면 판독기가 상호 작용하는 방식을 정의합니다. role은 예를 들어 트리와 같은 요소가 체크박스처럼 작동하는 특별한 경우에 설정해야 합니다. role이 지정되지 않으면 VS Code가 자동으로 적절한 role을 선택합니다.
"위치로 이동"에 대한 대체 메시지
editor.action.goToLocations 명령은 더 이상 위치를 찾을 수 없을 때 대체 메시지를 표시할 수 있습니다. 이를 통해 확장 프로그램은 **슈퍼 타입으로 이동**과 같은 기능을 **정의로 이동**과 같은 내장 기능처럼 동작하도록 구현할 수 있습니다. 다음 스니펫은 이 명령을 호출하는 확장 프로그램의 전체 샘플입니다.
vscode.commands.executeCommand(
'editor.action.goToLocations',
vscode.window.activeTextEditor.document.uri, //anchor uri and position
vscode.window.activeTextEditor.selection.start,
[], // results (vscode.Location[])
'goto', // mode
'No Super Types Found' // <- message
);
단일 파일 디버그 경험 개선을 위한 지침
편집기에 "실행" 및/또는 "디버그" 버튼을 추가하여 단일 파일 디버그 경험을 개선하려는 디버그 확장의 경우, 일관된 모양과 느낌을 위해 다음 지침을 따르는 것이 좋습니다.
package.json에 실행 및/또는 디버그 명령 제공 (참조: Mock Debug)- 명령 제목으로 "파일 실행"/"파일 디버그" 또는 "Python 파일 실행"/"Python 파일 디버그"를 사용하세요.
- 실행에는
$(play)아이콘을, 디버그에는$(debug-alt-small)아이콘을 사용하세요.
- 편집기 제목 영역에 명령 추가 (Mock Debug 참조)
- 특정 언어에만 명령을 표시하려면 "when" 절을 사용하세요. 예:
"resourceLangId == python". - 실행 명령은
1_run@10그룹에, 디버그 명령은1_run@20그룹에 배치하세요.
- 특정 언어에만 명령을 표시하려면 "when" 절을 사용하세요. 예:
CodeActionProviderMetadata.documentation
CodeActionProviderMetadata의 새로운 documentation 속성을 통해 확장 프로그램은 반환하는 코드 작업에 대한 정적 문서를 제공할 수 있습니다. 이 문서는 제공 프로그램이 코드 작업을 반환할 때 코드 작업 목록 하단에 표시됩니다.

사용자가 문서 항목을 선택하면 명령이 실행됩니다. 이 명령은 편집기에서 문서를 표시하거나 브라우저에서 열 수 있습니다.
열기 및 저장 대화 상자 제목
OpenDialogOptions 및 SaveDialogOptions를 통해 열기 및 저장 파일 대화 상자에 title을 제공하는 API가 최종 확정되었습니다. 모든 운영 체제가 이 제목을 설정하는 것을 허용하는 것은 아니므로, 확장 프로그램이 실행되는 환경에 따라 동작이 다를 수 있습니다.
새로운 확장 프로그램 카테고리
이제 다음 새로 추가된 카테고리를 사용하여 확장 프로그램을 분류할 수 있습니다.
- 데이터 과학
- 머신 러닝
- 시각화
- 테스트
- 노트북
보조 버튼 스타일
덜 눈에 띄게 해야 할 경우 사용할 수 있는 보조 버튼 스타일을 도입했습니다.
button.secondaryForegroundbutton.secondaryBackgroundbutton.secondaryHoverBackground
GitHub 워크플로 배지
github.com이 승인된 배지 소스 목록에 추가되었으므로 이제 게시된 확장 프로그램의 배지 목록에 GitHub 워크플로 배지를 추가할 수 있습니다.

argv.json을 통한 제안 API 활성화
enable-proposed-api 필드는 이제 argv.json에서 지원됩니다. 이를 통해 확장 프로그램 작성자는 VS Code를 명령줄로 열고 --enable-proposed-api CLI 플래그를 전달할 필요 없이 릴리스 빌드에서 제안 API 확장 프로그램을 장기적으로 사용해 볼 수 있습니다.
새로운 codicon 아이콘
다음 새로운 아이콘을 codicon 라이브러리에 추가했습니다.
debug-alt-smallvm-connect
![]()
언어 서버 프로토콜
향후 완성 항목에 대한 의미 토큰 및 추가 텍스트 편집의 지연된 확인에 대한 지원이 3.16 사양에 추가되었습니다.
제안된 확장 API
모든 마일스톤에는 새로운 제안 API가 제공되며 확장 작성자는 이를 사용해 볼 수 있습니다. 언제나처럼 여러분의 피드백을 원합니다. 제안된 API를 사용하려면 다음을 수행해야 합니다.
- 제안된 API는 자주 변경되므로 Insiders를 사용해야 합니다.
- 확장의
package.json파일에 이 줄이 있어야 합니다:"enableProposedApi": true. vscode.proposed.d.ts파일의 최신 버전을 프로젝트 소스 위치로 복사합니다.
제안 API를 사용하는 확장은 게시할 수 없습니다. 다음 릴리스에서 호환성이 깨지는 변경이 있을 수 있으며 기존 확장을 손상시키고 싶지 않습니다.
터미널 링크 제공자
이전 릴리스에서 추가된 터미널의 새로운 링크 시스템(the terminal's new link system added in the previous release)을 기반으로, 이 새로운 제안 window.registerLinkProvider를 통해 확장 프로그램은 도구 설명 레이블을 포함한 링크를 터미널에 첨부할 수 있으며, 이 레이블은 호버 시 표시됩니다.

이는 이전에 제안되었던(현재는 사용 중단된) "링크 핸들러" API와 대조됩니다. 이 API는 확장 프로그램이 해당 링크를 처리할 수 있도록 허용하고, 만약 처리하지 못하면 대체 체인이 있었습니다. 링크가 확실히 처리되는 이 새로운 모델은 링크가 가능한 작업 목록을 가질 수 있다는 비전에 더 잘 부합합니다.
디버깅 없이 실행을 위한 새 API
VS Code의 "디버깅 없이 실행" 기능은 기존 디버그 구성을 사용하여 프로그램을 디버깅하는 대신 실행하는 디버깅의 변형입니다. 이 실행 모드의 결과로 프로그램은 중단점이나 다른 이유로 디버거에 중단되지 않습니다.
이번 마일스톤에서는 "디버깅 없이 실행"에 대한 공식 확장 프로그램 API를 제공합니다. debug.startDebugging 함수의 DebugSessionOptions에 새로운 noDebug 속성이 추가되었습니다. noDebug는 시작될 세션이 디버깅 모드로 실행될지 아니면 디버깅 없이 실행될지를 제어합니다. noDebug 속성이 누락된 경우, 상위 세션(있는 경우)의 값이 사용됩니다. 상위 세션이 없으면 누락된 noDebug 속성에 대해 'false' 값이 가정됩니다.
참고: 이전에 launch.json 구성에 noDebug 플래그를 추가하여 동일한 효과를 얻을 수 있었습니다. 이 비공식 API는 이제 사용 중단되었지만(여전히 지원됨) 확장 프로그램이 새 API로 전환하도록 제안합니다.
CALLSTACK 보기의 복잡성을 줄이는 새 API
정교한 디버그 확장 프로그램과 디버그 설정의 등장으로 CALL STACK 트리 보기에 더 많은 디버그 세션이 표시되어 복잡해 보입니다. 대부분의 경우 디버그 세션은 사용자에게 유용하며 사용자는 이를 완전히 제어할 수 있습니다. 다른 경우에는 일부 디버그 세션이 단순히 구현 아티팩트이거나 자식 세트 그룹 메커니즘일 수 있습니다.
일반적인 경우 CALL STACK 보기를 덜 복잡하게 만들기 위해, 단일 자식 세션만 있는 경우 부모 디버그 세션 노드를 숨기는 기능을 도입했습니다. 이 기능은 "압축 모드"라고 불리며 debug.startDebugging 함수의 DebugSessionOptions에 있는 새로운 선택적 compact 속성을 통해 사용할 수 있습니다.
compact가 true이면, 새로 생성된 디버그 세션의 부모는 단일 자식만 있는 한 CALL STACK 보기에서 숨겨집니다. compact가 false이거나 누락된 경우, 부모 노드는 계속 표시됩니다(이것이 현재 동작입니다).
트리에서 마크다운 호버
TreeItem의 tooltip이 MarkdownString이 될 수 있는 새로운 제안 API가 있습니다. 툴팁에 마크다운을 허용하는 것 외에도 TreeDataProvider에 새로운 resolveTreeItem이 있습니다. resolveTreeItem의 아이디어는 계산하는 데 시간이 더 걸릴 수 있는 속성(현재는 tooltip만 해당)을 모든 트리 항목에 대해 미리 계산하는 대신 나중에 확인할 수 있다는 것입니다. resolveTreeItem 및 마크다운 tooltip을 GitHub Pull Requests and Issues 확장 프로그램에서 사용하는 것을 볼 수 있습니다.
엔지니어링
TypeScript 4.0을 사용하여 VS Code 빌드
VS Code는 이제 TypeScript 4.0의 야간 빌드를 사용하여 빌드됩니다.
이 새로운 TypeScript 버전은 액세서에 대한 잠재적인 버그 몇 가지를 발견하는 데 도움이 되었으며, 곧 출시될 TypeScript 릴리스를 테스트하는 데도 도움이 됩니다.
문서 및 확장
C++용 CMake 도구
CMake 및 CMake Tools 확장 프로그램을 사용하여 C++ 애플리케이션을 개발하기 위한 새로운 튜토리얼(developing C++ applications with CMake).

macOS용 Java Pack 설치 프로그램
Visual Studio Code for Java Pack Installer는 macOS에서 Visual Studio Code로 Java 개발에 필요한 종속성 및 확장 프로그램을 다운로드합니다.

주요 수정 사항
- 71291: 가로 스크롤 시 트리 렌더링 깨짐
- 93230: 로컬 변수가 거슬리게 접힘
- 98309: 작업 복사 파일 서비스에서 여러 파일 허용
- 99061: 닫힌 diff 편집기 다시 열기 허용
- 99290: Git: 다시 로드 시 diff 편집기 복원
- 99704: 일시 중지되지 않았는데 상위 디버그 세션 행에 "일시 중지됨"으로 표시됨
- 99786: 디버그 도구 모음 위치 고정 시 추가 세션 시작 불가
- 100524: SCM 장식 누락
- 101132: 오프라인 상태에서 릴리스 노트 열기를 시도한 후에는 릴리스 노트를 다시 열 수 없음
감사합니다
마지막으로, 이번 달 VS Code에 기여해주신 다음 분들께 진심으로 감사드립니다.
이슈 추적에 대한 기여
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Simon Chan (@yume-chan)
- ArturoDent (@ArturoDent)
- Alexander (@usernamehw)
vscode 기여
- AlexStrNik (@AlexStrNik): #97526 수정 PR #97611
- Anoesj Sadraee (@Anoesj): "npm.packageManager" 설정에 "pnpm" 옵션 추가 PR #100654
- @champignoom: ibus가 작동하도록 ibus-gtk3 스테이징 PR #100480
- Daniel Davis (@daniel-j-davis)
- 커밋 메시지 자동 완성에 .git/SQUASH_MSG 감지 추가 #101078 PR #101114
- 디버그 창에 붙여넣기 허용 #100235 PR #100288
- Daybrush (Younkue Choi) (@daybrush): iOS용
metaKey지원 PR #100869 - Don Jayamanne (@DonJayamanne): 저장되지 않은 Notebook 자동 저장 비활성화 PR #100256
- Dan Foad (@foad): 숫자 CLI 인자 허용 PR #99540
- John Murray (@gjsjohnmurray)
- #99854 수정: 'settings.json에서 편집'에 객체 유형 기본값 추가 PR #99912
- #71295 수정: 확장 설정의 markdownDescription에 명령 URI 허용 PR #100304
- #100068 수정: 제안 위젯 컨트롤에 대한 '더 읽기/줄이기' 팁 개선 PR #100070
- Fedor Nezhivoi (@gyzerok)
- #79275을 위해 iconv-lite-umd를 0.6.4로 업데이트 PR #101213
- #79275을 위해 iconv-lite-umd 사용으로 전환 PR #100472
- #79275을 위해 vs/base/node/encoding.ts를 node 스트림에서 분리 PR #99413
- #79275을 위해 인코딩을 common으로 이동 PR #100539
- Andrii Dieiev (@IllusionMH)
- 호버에서 마크다운에 테이블 특정 태그 허용 (#99983 수정) PR #99988
- 0 길이 일치에서 대체 쌍 건너뛰기 (#100134 수정) PR #100482
- 谭九鼎 (@imba-tjd): Stack Overflow에 https 사용 PR #100655
- Ken (@irridia): 초기 구현: \U\u\L\l 대체 수정자 지원 PR #96128
- Jean Pierre (@jeanp413)
- 고정된 뷰가 없는 패널로 뷰를 드래그할 때 'undefined의 id' 오류 수정 PR #99582
- 터미널 환경 변수 아이콘 위치 업데이트되지 않는 문제 수정 PR #98015
- 웹 업로드에서 폴더 교체 경험 개선 PR #99601
- 고정된 탭이 편집기 그룹을 병합할 때 보존되지 않는 문제 수정 PR #100344
- 액티비티 아이콘을 햄버거 메뉴 위로 드래그하면 끝으로 떨어지는 문제 수정 PR #98050
- 문제 필터 포커스 윤곽선이 창 헤더에서 잘리는 문제 수정 PR #97438
- 고대비 테마를 사용할 때 포커스된 상태 표시줄 항목이 주황색 테두리를 사용하도록 수정 PR #99453
- Justin Hutchings (@jhutchings1): CodeQL 보안 스캔 추가 PR #99411
- Keshav Bohra (@keshav-bohr): 단어 수정 PR #100301
- Wenlu Wang (@Kingwl): ts/js 사용 중단 지원 추가 PR #97742
- Rhitik Bhatt (@lambainsaan)
- 개요 창의 요소에 포커스하는 기본 키 바인딩 추가 PR #91799
- 생성자 메서드와 함께 사용될 때 onEnter 동작 버그 수정 PR #100076
- Mads Kristensen (@madskristensen)
- SchemaStore.org에 HTTPS URL 사용 PR #101047
- SchemaStore.org URL 수정 PR #101046
- Milo Moisson (@MrNossiom): 로깅 업데이트 PR #100657
- @nlchar: 피드백 창 다시 열 때 상태 복원 수정 PR #101074
- Noelle Caldwell (@noellelc): 풍부한 탐색 워크플로우 추가 PR #100014
- Pascal Fong Kye (@pfongkye): 파일 작업 이벤트가 여러 리소스 지원 PR #98988
- Robert Massaioli (@robertmassaioli): for-in 루프를 eslint:recommended와 함께 작동하도록 업데이트 PR #99721
- Stoyan Nikolov (@stoyannk): SimpleFileDialog에서 불필요한 'resolve' 제거 (기존 alre... 재사용) PR #99432
- Arman Tabaddor (@tabaddor): 텍스트 영역에 포커스 시 터미널 이름 추가 PR #100087
- Thibault Malbranche (@Titozzz): fix(search): 빈 문자열 패턴 충돌 교체 PR #101017
- @VoidNoire: POSIX 호환성을 높여 이식성을 향상시키고
bash종속성 제거 PR #100145
vscode-extension-samples 기여
- Matt Petty (@lodestone): 주석 개선 PR #317
vscode-eslint 기여
debug-adapter-protocol에 기여
- Lukas Zima (@zimlu02): Broadcom 확장 업데이트 PR #121
- Dave Holoway (@adelphes): Android 디버그 어댑터 추가 PR #125
language-server-protocol 기여
- Sacha Ayoun (@giltho): logTrace 알림 지정 PR #953
- Josh Soref (@jsoref): 철자 및 문법 수정 PR #1027
- Radek Simko (@radeksimko): website: 오타 수정 (Genernal -> General) PR #1035
vscode-languageserver-node에 기여
- Sacha Ayoun (@giltho): 언어 서버를 프로토콜 제안과 일치시킴 PR #611
- Andrew Arnott (@AArnott)
vscode-css-languageservice에 대한 기여
- Justin Hutchings (@jhutchings1): CodeQL 보안 스캔 추가 PR #218
node-jsonc-parser에 대한 기여
- Michael Bullington (@mbullington): 배열 수정 허용, 인플레이트 서식 옵션 추가. PR #35
vscode-generator-code에 대한 기여
- Pranav Shikarpur (@snpranav): 생성기를 위한 Dockerfile 생성 PR #210
vscode-vsce 기여
- Adam S (@ItsMajestiX): GitHub 워크플로우의 배지 허용 PR #396
- Tomas (@viktomas)