2020년 11월 (버전 1.52)
업데이트 1.52.1: 이 업데이트는 다음 이슈들을 해결합니다.
다운로드: Windows: x64 Arm64 | Mac: Intel | Linux: deb rpm tarball Arm snap
Visual Studio Code 2020년 11월 릴리스에 오신 것을 환영합니다. 11월 반복 계획에서 발표된 대로, 저희는 이슈 관리 가이드에 기록된 대로 2주간 GitHub 이슈 및 풀 리퀘스트 관리에 집중했습니다. 모든 VS Code 저장소에서 5242개의 이슈를 종료했으며 (분류 또는 수정), 이는 2019년 10월의 마지막 이슈 관리 주기에서 종료했던 4622개보다 많은 수입니다. 저희가 이슈를 종료하는 동안 여러분은 2937개의 새로운 이슈를 생성했습니다. 메인 vscode 저장소에는 현재 2146개의 열린 기능 요청과 884개의 열린 버그가 있습니다. 또한 144개의 풀 리퀘스트를 종료했습니다.
매년 그렇듯이, 저희는 진행 상황을 추적하기 위해 Benjamin Lannon의 라이브 트래커를 사용했습니다.

이슈 관리에 집중한 후, 몇 가지 기능 요청 및 커뮤니티 풀 리퀘스트도 처리했습니다. 이를 통해 많은 새로운 기능과 설정이 추가되었으며, 주요 내용은 다음과 같습니다.
- Diff 편집기에서 줄 바꿈 - 인라인 및 나란히 보기 모두에서 줄 바꿈이 지원됩니다.
- 새로운 확장 프로그램 Bisect 기능 - VS Code에서 문제를 일으키는 확장 프로그램을 문제 해결합니다.
- 키보드 단축키 편집기 개선 - 명령 팔레트에서 키 바인딩을 생성합니다.
- 탐색기에서 파일 작업 실행 취소 - 탐색기에서 파일 작업을 실행 취소하거나 다시 실행합니다.
- 새로운 Git 명령 및 설정 - 새로운 기능을 통해 버전 관리 환경을 최적화합니다.
- 미리 보기 편집기 개선 - 미리 보기 편집기를 완전히 비활성화하고 새로운 상호 작용 모델을 시도합니다.
- 공백으로 들여쓰기 시 고정 탭 정지 - 공백으로 들여쓰기 시 환경이 개선되었습니다.
- 향상된 단어 기반 제안 - 다른 열린 파일에서 단어 기반 제안을 표시합니다.
- 터미널 구성 지원 - 터미널 드롭다운 메뉴에서 터미널 설정을 수정합니다.
- 새로운 원격 개발 리소스 - 새로운 비디오와 학습 모듈을 확인하세요.
워크벤치
미리 보기 편집기 개선
사용자 피드백에 따라 미리 보기 편집기 처리 방식을 여러 가지 업데이트했습니다.
workbench.editor.enablePreviewFromQuickOpen 설정이 이제 기본적으로 비활성화되어, **빠른 열기**에서 열린 편집기가 더 이상 미리 보기 모드로 표시되지 않습니다.
코드 탐색(예: **정의로 이동**)을 시작하면, 시작한 편집기는 미리 보기 모드에서 벗어나 열린 상태를 유지하고, 새로운 편집기는 추가 탐색을 할 때까지 미리 보기 모드로 유지됩니다.

확장 프로그램 또는 Git 보기 등에서 사용되는 모든 사용자 지정 트리를 파일 탐색기와 같은 내장 트리와 더 일관되게 작동하도록 변경했습니다. 이는 다음 상호 작용이 이제 모든 트리에 적용됨을 의미합니다.
- 더블 클릭 또는 마우스 가운데 클릭으로 미리 보기 없이 열기.
- Enter로 미리 보기 없이 열기 (Space로 미리 보기 모드로 열기).
Alt+Click으로 활성 편집기 옆에 편집기 열기.
참고: 확장 프로그램 작성자가 사용자 지정 트리 API를 사용하는 경우 이 변경 사항의 이점도 얻을 수 있습니다. 새로운 미리 보기 모드 동작을 얻으려면 TreeItem.command에 vscode.open 또는 vscode.diff 명령을 사용해야 합니다.
편집기 오버플로 메뉴의 새 메뉴 항목인 **편집기 유지**를 통해 미리 보기 편집기를 즉시 완전히 비활성화할 수 있습니다.

이전 세션 창 복원
기존 window.restoreWindows 설정의 새 값인 preserve를 사용하면 VS Code를 닫기 전에 열었던 모든 창이 VS Code를 다시 시작할 때 복원되도록 강제할 수 있습니다. 이는 VS Code가 명시적으로 특정 폴더나 파일을 열도록 요청된 경우에도 마찬가지입니다. 일반적인 예로는 플랫폼 파일 탐색기에서 파일을 더블 클릭하여 VS Code에서 열거나 터미널을 사용하여 특정 파일 또는 폴더를 여는 것입니다. window.restoreWindows: preserve 설정 없이는 VS Code가 지시된 대로 파일 또는 폴더만 열지만 다른 창은 복원하지 않습니다.
드래그 앤 드롭 시 편집기 그룹 분할 비활성화
새로운 설정 workbench.editor.splitOnDragAndDrop은 편집기를 드래그 앤 드롭할 때 편집기 그룹 분할을 방지합니다. 또한 드래그 앤 드롭 작업 중에 Shift 키(macOS) 또는 Alt 키(Windows, Linux)를 누르고 있으면 이 동작을 조건부로 전환할 수 있습니다.
탐색기에서 파일 작업 실행 취소
파일 탐색기에서 이제 삭제, 이름 변경, 복사, 이동, 새 파일, 새 폴더 등 모든 파일 작업에 대해 **실행 취소** 및 **다시 실행**을 지원합니다. 파일 탐색기에 포커스가 맞춰져 있고 **실행 취소** 또는 **다시 실행** 명령을 트리거하면 마지막 파일 작업이 각각 실행 취소되거나 다시 실행됩니다. 편집기와 파일 탐색기에 대해 별도의 실행 취소 스택이 있으며, 포커스에 따라 어떤 스택을 실행 취소할지 선택한다는 점을 명심하십시오.

탐색기에서 장기 실행 작업에 대한 진행률 표시
이제 파일 탐색기와 상태 표시줄에 장기 실행 파일 작업(500ms 이상)에 대한 진행률을 표시합니다. 장기 실행 작업을 취소하는 초기 지원도 있습니다. 이는 대형 폴더를 복사하거나 원격 위치에서 리소스를 다운로드할 때 유용합니다.

열린 편집기 정렬
**열린 편집기** 목록의 정렬 순서를 제어하는 새로운 설정 explorer.openEditors.sortOrder가 있습니다.
값은 다음과 같습니다.
editorOrder- 편집기가 편집기 탭 표시 순서대로 나열됩니다(기본값).alphabetical- 편집기가 각 편집기 그룹 내에서 알파벳순으로 나열됩니다.
alphabetical 정렬은 열린 편집기 보기에만 영향을 미칩니다. 탭을 이동시키지는 않습니다.
이 기능은 파일이 많이 열려 있을 때 연관된 파일(예: hello.component.js 및 hello.component.html)을 일치시키고 싶을 때 유용할 수 있습니다.

접근 가능한 진행률 제어
작업대 진행률 표시가 더욱 접근 가능하게 되었습니다. VS Code는 화면 판독기가 VS Code의 모든 장기 실행 작업에 대한 진행률을 보고할 수 있도록 적절한 ARIA 역할을 설정합니다. 대부분의 화면 판독기는 기본적으로 10초 이상 진행 중인 경우에만 진행률을 알립니다.
소스 제어 변경 사항에 부모 폴더 경로 표시
소스 제어 보기에서 열린 Diff 편집기는 이제 파일 경로를 표시합니다(탭이 비활성화된 경우). 이전에는 파일 이름만 표시되었지만, 이제 이전 파일과 이후 파일이 동일한 폴더 내에 있으면 부모 폴더가 표시됩니다.

새 프록시 로그인 대화 상자 기본값으로 활성화
새로운 프록시 로그인 대화 상자가 이제 기본적으로 활성화되었습니다. 자세한 내용은 이전 릴리스 정보를 참조하십시오. window.enableExperimentalProxyLoginDialog 설정을 사용하여 이전 대화 상자를 활성화할 수 있지만, 이 지원은 곧 제거될 예정입니다. 새 로그인 대화 상자에 문제가 있으면 이슈를 제출하여 알려주십시오.
터미널 환경 처리 개선 (Linux, macOS)
Linux 또는 macOS에서 처음으로 도크 또는 런처(터미널이 아닌)를 통해 VS Code를 시작할 때, VS Code는 쉘 환경(.bashrc 또는 .zshrc로 정의되거나 변경된)을 확인하기 위해 백그라운드 프로세스를 시작합니다. 감지된 모든 환경 변수는 VS Code에서 사용되므로 터미널이나 도크/런처에서 시작하는 것에 차이가 없으며, 이는 디버깅 또는 작업 실행 시 중요합니다.
안타깝게도 이 백그라운드 프로세스가 실행될 때까지 VS Code가 열리지 않습니다. 시작이 너무 오래 걸리는 것을 방지하기 위해 VS Code는 10초 후에 열기 시작합니다. 이 경우 VS Code는 쉘 환경을 확인하지 못했음을 알리고 자세한 내용을 알아보려면 링크를 제공합니다.

마찬가지로, VS Code는 쉘 환경을 확인하느라 시작이 차단된 후 3초 후에 경고를 표시합니다.

백그라운드에서 쉘 환경을 확인하는 동안 VS Code 시작을 차단하지 않는 전략으로 변경하는 것을 적극적으로 검토 중이지만, 이는 향후 마일스톤에서만 가능할 것입니다.
이 영역의 다른 주목할 만한 변경 사항은 다음과 같습니다.
- 이제 터미널에서 환경 변수를 정의하고 변경한 후 VS Code의 두 번째 창을 시작할 수 있으며, 이는 첫 번째 시작 시 변수를 제대로 덮어씁니다. 즉, 창별 환경 변수를 효과적으로 사용할 수 있습니다(예:
nvm과 같은 도구를 사용하여 시작하기 전에 창별로 Node.js 버전을 변경할 수 있음). - VS Code의 두 번째 창을 시작하기 전에 터미널에서 설정된 환경 변수는 해당 창에서 폴더를 전환하더라도 유지됩니다.
작업대 오버플로 개선
작업대에 모든 보기를 표시할 공간이 부족하면 VS Code에 스크롤 막대가 표시되어 내용을 스크롤하고 모든 항목에 액세스할 수 있습니다. 이는 사이드 바, 편집기 그리드 등 작업대의 여러 영역에 적용됩니다.

새시 호버 테두리 색상
이제 작업대 전체에서 새시의 테두리 호버 색상(sash.hoverBorder)을 사용자 지정할 수 있습니다.

트리: 확장 모드
새로운 workbench.tree.expandMode 설정을 통해 폴더가 트리에서 확장되는 방식(단일 클릭 또는 더블 클릭 사용)을 제어할 수 있습니다.
macOS Big Sur 업데이트
Electron 9 문제로 인해 **다시 시작하여 업데이트**를 선택하면 VS Code가 자동으로 다시 시작되지 않고 단순히 종료됩니다. Electron 11을 포함할 다음 VS Code 릴리스까지는 이 경우 VS Code를 수동으로 다시 시작해야 합니다. 이슈 #109728에서 자세히 알아보십시오.
소스 제어
소스 제어 보기 상태 유지
소스 제어 보기 상태가 이제 세션 간에 유지됩니다. VS Code를 종료하고 다시 시작한 후에도 축소된 트리 노드는 계속 축소된 상태로 유지됩니다.
소스 제어 여백 작업
새로운 scm.diffDecorationsGutterAction 설정을 통해 편집기 왼쪽 면의 소스 제어 여백 장식을 선택할 때 발생하는 작업을 제어할 수 있습니다. 가능한 값은 다음과 같습니다.
diff- 클릭 시 인라인 Diff 미리 보기 보기 열기 (기본값).none- 모든 작업 비활성화.
Git: 새 명령
명령 팔레트에 여러 개의 새로운 Git 명령이 추가되었습니다.
- Git: Cherry Pick... - 특정 커밋을 브랜치로 체리픽합니다.
- Git: 이름 바꾸기 - 활성 파일의 Git 이름 변경을 수행합니다.
- Git: 태그 푸시 - 모든 로컬 태그를 원격으로 푸시합니다.
- Git: 체크아웃 (분리)... - 분리 모드에서 체크아웃을 수행합니다.
Git: 새 설정
또한 새로운 Git 설정이 추가되었습니다.
git.pruneOnFetch- VS Code가 원격 참조를 가져올 때git fetch --prune을 실행하도록 합니다.git.ignoreSubmodules- 이제 VS Code가 서브모듈 저장소의 변경 사항을 무시하도록 할 수 있습니다. 이는 대형 모노레포에서 유용합니다.git.openAfterClone- Git 저장소를 복제한 후 폴더를 여는 방법(현재 창, 새 창, 폴더가 열려 있지 않은 경우, 사용자에게 묻기)을 제어합니다.git.useCommitInputAsStashMessage- Git: Stash를 실행할 때 소스 제어 입력 상자의 커밋 메시지를 스태시 메시지로 사용하도록 VS Code를 활성화합니다.git.followTagsWhenSync- Git: Sync를 실행할 때 태그를 따릅니다.git.checkoutType- Git: Checkout... 명령을 실행할 때 표시되는 참조와 순서를 제어합니다.
Git: 스태시하기 전에 파일 저장 프롬프트
이제 VS Code는 변경 사항을 스태시하려고 할 때 저장되지 않은 파일에 대해 저장할지 묻는 메시지를 표시합니다.
Git: 삭제된 파일 병합 충돌에 대한 더 나은 diff
삭제된 파일 병합 충돌에 대해 향상된 diff 환경을 제공하여, 삭제 반대편 브랜치의 실제 파일 변경 사항을 보여줍니다.
Git: 원격 추가 시 가져오기
이제 VS Code는 원격을 추가한 직후 git fetch를 실행하여 해당 원격의 모든 참조를 가져옵니다.
Git: 분리 체크아웃
이제 VS Code에서 분리 모드로 참조를 체크아웃할 수 있습니다.

Git: 오류 시 명령 출력 표시
Git 명령이 오류를 발생시키면 이제 새로운 **명령 출력 표시** 옵션을 통해 전체 오류 메시지를 볼 수 있습니다.

Git: git.api.getRemoteSources 명령에 대한 새 옵션
git.api.getRemoteSources Git API 명령 옵션은 이제 선택적 branch?: boolean 속성을 지원하여, 원격 소스 공급자가 지원하는 경우 Git이 사용자에게 원격 소스에서 브랜치를 선택하도록 안내합니다.
또한, 이 명령은 이제 providerName?: string 옵션을 지원하여 호출자가 사용자에게 원격 소스 선택을 건너뛰고 특정 공급자를 직접 사용할 수 있도록 합니다.
디버깅
중단점 보기: 예외 중단점 조건
VS Code는 이제 중단점 보기에서 **조건 편집** 컨텍스트 메뉴 작업을 통해 예외 중단점의 조건을 편집할 수 있습니다.
현재로서는 Mock Debug 확장 프로그램만 (가짜) 예외 중단점 조건 지원을 제공하지만, 곧 JavaScript 디버거와 같은 다른 디버그 확장 프로그램도 지원할 예정입니다.


예외 영역 접근성
편집기의 예외 정보 영역이 더 접근 가능하게 되었습니다. 디버깅 중 예외가 발생하면 VS Code는 자동으로 예외 영역으로 포커스를 이동하여 화면 판독기가 예외 세부 정보와 스택 프레임을 보고하도록 합니다.
이제 Escape 키 또는 예외 영역 오른쪽 상단의 **X** 버튼을 사용하여 예외 영역을 닫을 수도 있습니다.
UI 개선
개요 눈금자에 디버깅 중인 줄 표시
현재 디버깅 중인 줄이 이제 편집기 오른쪽의 개요 눈금자에 표시됩니다. 이 장식에 대해 이미 존재하는 editor.stackFrameHighlightBackground 색상을 사용합니다. 이 외에도 VS Code는 현재 초점이 맞춰진 디버깅 중인 줄을 editor.focusedStackFrameHighlightBackground 색상을 사용하여 개요 눈금자에 표시합니다 (초점 맞춰진 디버깅 중인 줄은 상위 스택 프레임 위치가 아닌, **호출 스택 보기**에서 수동으로 선택된 위치입니다).
자동 디버그 구성 개선
이전에는 디버그 확장 프로그램이 현재 프로젝트를 분석하고 디버그 구성을 자동으로 제공할 수 있도록 하는 기능을 도입했습니다. 이러한 디버그 구성은 동적으로 생성되므로 launch.json 구성 파일에 표시되지 않습니다. 이 마일스톤에서는 VS Code 재시작 (및 다시 로드) 중에도 최근에 사용된 자동 디버그 구성을 유지하여 전체 경험을 더 원활하게 만듭니다. 재시작 후 자동 디버그 구성이 더 이상 유효하지 않은 경우, 디버깅이 시작될 때 VS Code가 동일한 공급자로부터 새 자동 구성을 선택하도록 요청합니다.
디버그 호버: 도움말 텍스트/팁을 사용하여 일반 호버로 전환
디버깅 중에는 일반 호버로 전환하는 것을 더 쉽게 알 수 있도록 디버그 호버 하단에 도움말 텍스트가 표시됩니다. 상기하자면, 디버깅 중에는 디버그 호버가 언어 호버보다 우선하므로 언어 호버를 볼 수 없습니다. Alt 수정 키를 누르고 있으면 디버그 호버에서 언어 호버로 전환할 수 있습니다. Alt를 누르고 있는 동안에는 디버그 호버 대신 언어 호버가 표시됩니다. 이를 통해 디버깅 중에 Javadoc 설명과 같은 호버를 더 쉽게 읽을 수 있습니다.

디버그 콘솔: 동일한 줄 접기
디버그 콘솔은 이제 동일한 출력을 접고 발생 횟수를 표시합니다. 이 기능은 반복적인 프로그램 출력을 더 쉽게 파악할 수 있게 합니다.

launch.json 및 tasks.json용 새 변수
다음과 같은 새 변수가 도입되었습니다.
${fileWorkspaceFolder}- 활성 VS Code 편집기에 열린 파일의 작업 영역 폴더 경로로 해석됩니다.${fileDirnameBasename}- 활성 VS Code 편집기에 열린 파일이 있는 폴더 이름으로 해석됩니다.${pathSeparator}- 운영 체제에서 파일 경로의 구성 요소를 구분하는 데 사용하는 문자로 해석됩니다.
serverReadyAction: 이름으로 다른 디버그 구성 실행
serverReadyAction은 과거에 URL을 일치시켜 브라우저나 Chrome 디버깅을 실행할 수 있었습니다. 이번 릴리스에서는 임의의 다른 구성을 이름으로 실행하는 새로운 옵션이 추가되었습니다. 예를 들어, launch.json에서 다음과 같이 지정할 수 있습니다.
"serverReadyAction": {
"action": "startDebugging",
"pattern": "listening on port ([0-9]+)",
"name": "Launch Browser"
}
이를 통해 표준 Chrome 디버그 구성에서 추가 옵션을 전달하고 serverReadyAction과 함께 다른 디버거를 사용할 수 있습니다.
자동 첨부 임시 비활성화
이제 상태 표시줄의 **자동 첨부** 항목 또는 **디버그: 자동 첨부 전환** 명령을 통해 자동 첨부를 임시로 비활성화할 수 있습니다. 이와 같이 자동 첨부를 비활성화하는 것은 현재 창에만 적용되며 터미널을 다시 시작할 필요가 없습니다. 동일한 방법으로 다시 활성화할 수 있습니다.

JavaScript 디버거
변경 사항의 전체 목록은 디버거의 변경 로그에서 찾을 수 있습니다.
중단점 진단 도구
디버깅을 방해하거나 중단점 바인딩을 방해하는 빌드 또는 구성 문제를 해결하는 데 도움이 되는 새로운 도구가 있습니다. 사용하려면 디버그 세션이 실행 중일 때 **디버그: 현재 세션에 대한 진단 정보 생성** 명령을 실행하십시오. 이후 VS Code 버전에서는 적절한 경우 이 진단 도구에 대한 힌트가 자동으로 표시됩니다.
기본 실행 파일 위치 설정
사용자 설정 debug.javascript.defaultRuntimeExecutable을 통해 Node.js 또는 Chrome 바이너리의 기본 위치를 지정할 수 있습니다. 예를 들어, { "pwa-chrome": "dev" }는 Chrome 유형 구성으로 디버깅할 때 Chrome의 "dev" 빌드를 사용합니다.
이 새 옵션을 사용하려면 pwa-node 대신 node를 사용하거나 Chrome 대신 pwa-chrome을 사용해야 한다는 점에 유의하십시오.
작업
npm
내장 npm 확장 프로그램의 npm.packageManager 설정의 새 기본값은 auto입니다. auto 값은 .lock 파일과 작업 영역의 종속성을 설치하는 데 사용된 패키지 관리자를 기반으로 패키지 관리자를 자동으로 감지하도록 합니다. 여러 .lock 파일이 감지되면 여전히 패키지 관리자가 선택되며 경고가 표시됩니다.
최근 작업 제거
작업 빠른 선택에는 항상 맨 위에 **최근 작업** 섹션이 있었습니다. 이 위치는 중요하므로 이제 오른쪽의 **최근 사용한 작업 제거** 버튼을 사용하여 빠른 선택에서 최근 작업을 제거하여 더 잘 관리할 수 있습니다.

확장
이 마일스톤에서는 확장 프로그램 보기 및 확장 프로그램 세부 정보 페이지에 여러 개선 사항을 추가했습니다.
확장 프로그램 보기가 이제 자동으로 새로 고쳐집니다. 예를 들어, 확장 프로그램을 설치한 직후 **확장 프로그램: 설치됨** 목록에 확장 프로그램이 표시됩니다. 제목 표시줄의 새로 고침 버튼을 사용하여 보기를 수동으로 새로 고칠 수도 있습니다.

테마: GitHub Light
확장 프로그램 세부 정보 페이지는 이제 확장 프로그램 보기와 마찬가지로 확장 프로그램의 모든 작업을 포함하는 컨텍스트 메뉴를 표시합니다.

테마: GitHub Light
확장 프로그램 세부 정보 페이지의 **기능 기여** 탭은 이제 확장 프로그램의 활성화 이벤트를 표시합니다.

테마: GitHub Light
이제 종속성이 있는 확장 프로그램을 비활성화하려고 할 때 해당 확장 프로그램과 그 종속성을 함께 비활성화할 수 있습니다. 종속성이 있는 확장 프로그램을 비활성화하려고 하면 **모두 비활성화** 작업이 있는 알림이 표시됩니다.

테마: GitHub Light
확장 프로그램 보기에서 확장 프로그램의 컨텍스트 메뉴에 있는 **작업 영역 권장 사항에 추가** 또는 **작업 영역 권장 사항에서 제거** 작업을 사용하여 확장 프로그램을 작업 영역 권장 사항에 추가하거나 제거할 수 있습니다.

테마: GitHub Light
확장 프로그램 권장 사항 알림은 이제 설정 동기화가 활성화된 경우 확장 프로그램 보기와 마찬가지로 설치 드롭다운 작업을 표시합니다.

extensions.showRecommendationsOnlyOnDemand 설정을 사용 중단하여 확장 프로그램 권장 사항 구성을 단순화했습니다. 이제 extensions.ignoreRecommendations 설정을 사용하여 확장 프로그램 권장 사항 알림을 제어할 수 있으며, 확장 프로그램 보기의 가시성 작업으로 기본적으로 권장 사항을 숨길 수 있습니다.
문제 해결: 확장 프로그램 Bisect
VS Code의 진정한 힘은 확장 프로그램에 있습니다: 테마 확장 프로그램은 예쁜 색상과 아이콘을 추가하고, 언어 확장 프로그램은 IntelliSense를 제공하고 코드 탐색을 가능하게 하며, 디버거 확장 프로그램은 버그를 깊이 파고들 수 있게 합니다. 때로는 문제가 확장 프로그램에 의해 발생하는지, 그리고 그렇다면 어떤 확장 프로그램에 의한 것인지 명확하지 않을 때가 있습니다. 오늘날까지는 모든 확장 프로그램을 비활성화한 다음 하나씩 다시 활성화하여 문제가 있는 확장 프로그램을 찾아야 했습니다. 이제 **확장 프로그램 Bisect**라는 새로운 기능으로 이 과정이 쉬워졌습니다. 이 기능은 이진 검색 알고리즘을 사용하여 문제를 일으키는 확장 프로그램을 빠르게 식별합니다. 본질적으로 확장 프로그램의 절반을 비활성화하고 문제가 해결되었는지 확인하도록 요청합니다. 문제가 사라졌다면, 문제는 비활성화된 확장 프로그램 목록에 있어야 하며 현재 활성화된 확장 프로그램 목록에 있어서는 안 됩니다. 이 과정은 단 하나의 확장 프로그램만 남을 때까지 반복됩니다.
명령 팔레트 (⇧⌘P (Windows, Linux Ctrl+Shift+P))에서 **도움말: 확장 프로그램 Bisect 시작** 명령을 통해 확장 프로그램 Bisect를 시작할 수 있습니다. 그런 다음 확장 프로그램을 반복적으로 비활성화하고 다시 활성화하는 과정을 안내합니다. 다시 로드할 때마다 문제가 여전히 있는지 확인하도록 요청됩니다.


확장 프로그램 Bisect는 문제가 재현되는지 여부를 확인하도록 반복적으로 요청합니다. **Bisect 중지**를 통해 언제든지 중단할 수 있으며, Bisect 알림을 해제한 경우 **도움말: 확장 프로그램 Bisect 계속** 명령을 통해 계속할 수 있습니다.

확장 프로그램 Bisect 프로세스가 완료되면 확장 프로그램에 대한 이슈를 제출하도록 요청받습니다. 여기서 확장 프로그램을 비활성화된 상태로 유지할 수도 있습니다.
키보드 단축키 편집기
이번 마일스톤에서 키보드 단축키 편집기에 여러 개선 사항을 추가했습니다.
이제 명령 팔레트를 통해 명령에 대한 키 바인딩을 구성할 수 있습니다. 오른쪽의 **키 바인딩 구성** 기어 버튼을 사용합니다.

테마: GitHub Light
키보드 단축키 편집기에서 명령에 여러 키 바인딩을 추가할 수 있습니다.

테마: GitHub Light
또한 검색 입력으로 특정 키보드 단축키 편집기 열을 필터링할 수 있습니다.
@command:commandId- 명령 ID로 필터링합니다. 예:@command:workbench.action.showCommands.@keybinding:keybinding- 키 바인딩으로 필터링합니다. 예:@keybinding:f1.@source:user|default|extension- 소스로 필터링합니다.
화살표 키(Up 및 Down)를 사용하여 키보드 단축키 편집기에서 검색 기록을 탐색할 수 있습니다.

IntelliSense
다른 문서의 단어 기반 제안
VS Code는 간단한 단어 기반 제안을 지원합니다. 이는 언어 서비스가 사용 가능하지 않거나 언어 서비스가 결과를 계산할 수 없을 때 (예: 주석 안에서 입력할 때) 유용합니다. 이번 릴리스에서는 다른 열린 파일의 단어를 제안하도록 VS Code를 구성할 수 있습니다. editor.wordBasedSuggestionsMode 설정을 allDocuments로 사용하여 모든 열린 파일의 단어를 제안하고, matchingDocuments를 사용하여 동일한 언어의 열린 파일에서 단어를 제안하며(기본값), currentDocument를 사용하여 현재 파일의 단어만 제안하도록 합니다.

인라인 세부 정보 숨기기
VS Code의 제안에는 제안 옆의 별도 플라이아웃에 표시되는 세부 정보가 있습니다. 세부 정보 보기를 닫으면 제안과 함께 인라인으로 세부 정보 미리 보기가 표시됩니다. 제안과 함께 세부 정보를 인라인으로 표시하는 것은 너무 많은 공간을 차지할 수 있으므로, 새로운 부울 설정 editor.suggest.showInlineDetails를 통해 비활성화할 수 있습니다.
TypeScript 제안에 경로 표시
TypeScript는 가져오기 문을 추가하는 완료를 제공할 수 있습니다. 그러나 동일한 이름을 가진 여러 기호가 있을 때 올바른 완료를 선택하기 어렵습니다. 이번 릴리스에서는 자동 가져오기 완료의 경로가 레이블과 함께 표시되므로 이 작업이 더 간단해졌습니다.

CodeLens 사용자 지정
이제 CodeLens 항목의 글꼴 패밀리와 크기를 구성할 수 있습니다.

위의 화면 캡처에서 글꼴과 크기는 다음 두 가지 설정을 사용하여 사용자 지정되었습니다.
"editor.codeLensFontFamily": "Comic Sans MS",
"editor.codeLensFontSize": 12,
편집기
공백으로 들여쓰기 시 고정 탭 정지
코드 들여쓰기에 공백을 선호하는 경우, VS Code가 탭과 유사하게 선행 공백에서의 커서 이동을 처리하도록 하는 새로운 설정 editor.stickyTabStops가 있습니다.

단어 삭제 명령
기존 단어 삭제 동작은 커서 위치에서 단어 시작까지 (예: Windows/Linux에서 Ctrl+Backspace) 또는 단어 끝까지 (예: Windows/Linux에서 Ctrl+Delete) 삭제합니다. 이제 커서 아래 단어 전체를 삭제하는 새로운 명령 **단어 삭제**가 있습니다.
Diff 편집기에서 줄 바꿈
Diff 편집기의 나란히 보기와 인라인 보기 모두에서 줄 바꿈이 지원됩니다. 일반적으로 Diff 편집기는 줄 바꿈과 관련된 편집기 설정을 따릅니다. 기본적으로 줄 바꿈되는 Markdown 파일의 경우 Diff 편집기에서도 줄 바꿈됩니다.

Diff 편집기에서 줄 바꿈을 사용하지 않거나 항상 사용하도록 하려면 새로운 diffEditor.wordWrap 설정을 사용하고 "on" 또는 "off"로 구성할 수 있습니다 (기본값은 "inherit"이며, Diff 편집기가 편집기 줄 바꿈 설정을 상속함을 의미합니다).
코드 조각
확장 프로그램 스니펫 숨기기
확장 프로그램에서 제공하는 스니펫을 IntelliSense에서 숨길 수 있습니다. 이 기능은 **스니펫 삽입**을 실행할 때 스니펫 삽입 선택기에서 사용할 수 있습니다. 숨기려는 확장 프로그램 스니펫을 찾고 오른쪽의 눈 아이콘을 선택합니다.

숨겨진 스니펫은 IntelliSense에 표시되지 않지만 **스니펫 삽입**을 통해 여전히 사용할 수 있습니다. 마지막으로, 설정 동기화를 사용할 때 숨겨진 스니펫 설정은 장치 간에 동기화됩니다.
접두사 없는 스니펫
스니펫을 작성할 때 이제 접두사 속성을 생략할 수 있습니다. 접두사가 없는 스니펫은 IntelliSense에 표시되지 않지만 **스니펫 삽입**을 통해 사용할 수 있습니다.
통합 터미널
터미널 구성 지원
이제 터미널 드롭다운 메뉴에서 **터미널 설정 구성**을 선택하여 터미널 설정을 수정할 수 있습니다.

키 바인딩 관리
기본적으로 키 바인딩은 terminal.integrated.commandsToSkipShell 설정에 지정된 대로 터미널 대신 작업대로 전달됩니다. 새로운 알림은 사용자가 이러한 명령 중 하나에 해당하는 키 바인딩을 입력했을 때 이를 알리고 관련 설정을 구성할 옵션을 제공합니다.
대부분의 키 바인딩을 터미널 대신 작업대로 보내려면 terminal.integrated.sendKeybindingsToShell을 설정할 수 있습니다.

언어
Markdown 인라인 스마트 선택
다음 명령을 사용하여 Markdown 문서에서 선택을 확장하고 축소합니다.
- 확장: ⌃⇧⌘→ (Windows, Linux Shift+Alt+Right)
- 축소: ⌃⇧⌘← (Windows, Linux Shift+Alt+Left)
선택은 이탤릭, 볼드, 인라인 코드 블록 및 링크에 적용됩니다.

TypeScript 4.1
VS Code의 이 릴리스에는 TypeScript 4.1.2가 포함되어 있습니다. 이 주요 TypeScript 업데이트는 템플릿 리터럴 타입 및 [React 17의 팩토리 지원을 포함한 여러 새로운 언어 기능 지원을 제공하며, JavaScript 및 TypeScript에 대한 언어 도구를 개선합니다. 항상 그렇듯이 버그 수정도 포함되어 있습니다.
TypeScript 4.1에 대한 자세한 내용은 TypeScript 블로그에서 읽을 수 있습니다.
JSDoc @see 태그에 대한 초기 지원
JSDoc @see 태그를 사용하면 JSDoc 주석에서 다른 함수 및 클래스를 참조할 수 있습니다. 아래 예시는 crash 함수가 다른 파일의 WrappedError 클래스를 참조하는 것을 보여줍니다.
// @filename: somewhere.ts
export class WrappedError extends Error { ... }
// @filename: ace.ts
import { WrappedError } from './somewhere'
/**
* @see {WrappedError}
*/
function crash(kind) {
throw new WrappedError(kind);
}
VS Code는 이제 이름 변경 시 기본 @see 참조를 포함합니다. @see 태그의 내용에서 **정의로 이동**을 실행할 수도 있으며 @see 태그는 참조 목록에도 표시됩니다.
향후 릴리스에서 @see 태그에 대한 지원을 계속 개선할 예정입니다.
IntelliSense 동작 및 타입 검사에 대한 새 설정
명시적인 tsconfig 또는 jsconfig 프로젝트의 일부가 아닌 JavaScript 및 TypeScript 파일의 IntelliSense 및 타입 검사 동작을 제어하는 두 가지 새로운 설정이 있습니다.
-
js/ts.implicitProjectConfig.strictNullChecks설정은 엄격한 null 검사를 활성화합니다. 기본값은false입니다.TypeScript를 사용한다면 많은 일반적인 프로그래밍 오류를 잡아낼 수 있으므로 엄격한 null 검사를 활성화하는 것이 좋습니다.
엄격한 null 검사는 JavaScript 작업 중에도 유용합니다. 엄격한 null 검사가 활성화되면 호버 및 IntelliSense 정보에
undefined및null이 될 수 있는 타입이 표시됩니다. JavaScript에서 타입 검사를 활성화하면 VS Code는 엄격한 null 검사를 사용하여 일반적인 프로그래밍 오류를 잡아낼 수도 있습니다. -
js/ts.implicitProjectConfig.strictFunctionTypes설정은 엄격한 함수 타입을 활성화합니다. 기본값은true입니다.엄격한 함수 타입은 설명하기 어렵지만 IntelliSense를 개선하고 일부 프로그래밍 오류를 잡아낼 수 있습니다.
이러한 설정은 파일이 jsconfig 또는 tsconfig 프로젝트의 일부인 경우 둘 다 재정의된다는 점에 유의하십시오.
기타 암시적 JS/TS 프로젝트 설정 이름 변경
JavaScript 및 TypeScript에 대한 기타 암시적 프로젝트 설정이 더 정확하도록 이름이 변경되었습니다.
javascript.implicitProjectConfig.checkJs->js/ts.implicitProjectConfig.checkJsjavascript.implicitProjectConfig.experimentalDecorators->js/ts.implicitProjectConfig.experimentalDecorators
이 설정들은 jsconfig 또는 tsconfig 프로젝트에 속하지 않은 JavaScript 및 TypeScript 파일 모두에 적용되기 때문에 이름이 변경되었습니다. 이전 설정 이름은 JavaScript 파일에만 적용되는 것처럼 보였습니다.
HTML
새로운 포맷터 설정
HTML 확장은 포맷터로 JSBeautify를 사용합니다. JSBeautify(1.13)의 최신 버전으로 업데이트하면서 몇 가지 새로운 포맷터 설정이 추가되었습니다.
html.format.wrapAttributesIndentSize:html.format.wrapAttributes에서force aligned및aligned multiple을 사용할 때 정렬 크기입니다. 기본 들여쓰기 크기를 사용하려면null로 설정합니다.html.format.templating: django, erb, handlebars 및 php 템플릿 언어 태그를 존중합니다.html.format.unformattedContentDelimiter: 이 문자열 사이의 텍스트 콘텐츠를 함께 유지합니다.
마지막 설정은 포맷팅되지 않아야 하는 영역을 표시하는 태그를 설정할 수 있게 해줍니다.
"html.format.unformattedContentDelimiter": "<!-- DoNotFormat -->"

onTypeRename의 새로운 설정 이름
짝이 되는 닫는 태그가 수정될 때 태그를 편집하는 On Type Rename 기능은 이제 linked editing이라고 불립니다. 연결 편집을 활성화하는 명령은 Start Linked Editing(⇧⌘F2 (Windows, Linux Ctrl+Shift+F2))이며, Escape 키는 연결 편집 모드를 비활성화합니다.
이를 활성화하는 설정은 이제 다음과 같습니다.
"editor.linkedEditing": true
확장 프로그램 기여
원격 개발
컨테이너, 원격 머신 또는 Linux용 Windows 하위 시스템(WSL)을 전체 기능 개발 환경으로 사용할 수 있는 원격 개발 확장에 대한 작업이 계속 진행 중입니다.
1.52 버전의 주요 기능은 다음과 같습니다.
- Linux 원격 환경에서 자동 포트 포워딩.
- 원격 확장을 로컬에 설치하는 새로운 명령.
- 컨테이너에서 리포지토리를 열 때 브랜치를 선택할 수 있습니다.
- 백그라운드에서 확장을 설치하여 서버 시작 성능 개선.
새로운 확장 기능 및 버그 수정에 대한 자세한 내용은 원격 개발 릴리스 노트에서 확인할 수 있습니다.
노트북
VS Code 팀은 Notebooks의 기본 지원 및 UX 및 성능 개선을 위해 계속 작업 중입니다.
대규모 텍스트 출력 렌더링 개선
기본 Notebook 편집기는 UI가 항상 응답성을 유지하도록 콘텐츠가 너무 클 경우 출력을 잘라냅니다. 그래도 텍스트 편집기에서 전체 원시 출력 콘텐츠를 열 수 있습니다.

확장 프로그램 작성
파일 장식 API
FileDecorationProvider API는 이제 최종 버전이며 모든 확장 프로그램에서 사용할 수 있습니다. 이 API를 사용하면 파일에 주변 정보를 추가할 수 있습니다. 탐색기에서 표시되는 SCM 및 오류 장식에 이 API가 사용됩니다.
리소스 변경 사항 실행 취소
파일 생성, 파일 이름 변경 또는 파일 삭제와 같은 탐색기 작업은 이벤트(예: onWillCreateFiles, onWillRenameFiles 또는 onWillDeleteFiles)를 발생시켜 참여를 허용합니다. 이번 릴리스에서는 이러한 탐색기 작업을 실행 취소하는 지원이 추가되었으며, 작업 실행 취소 시 위에서 언급한 이벤트는 발생하지 않습니다.
새로운 테마 색상
statusBarItem.errorBackground: 상태 표시줄 오류 항목의 배경색입니다. 오류 항목은 다른 상태 표시줄 항목과 구별되어 오류 조건을 나타냅니다.statusBarItem.errorForeground: 상태 표시줄 오류 항목의 전경색입니다. 오류 항목은 다른 상태 표시줄 항목과 구별되어 오류 조건을 나타냅니다.
오류 배경색
테마 작성자는 이제 편집기에서 오류에 대한 새로운 테마 색상을 활용할 수 있습니다. 편집기 오류, 경고 및 정보는 이제 다음을 통해 스타일링할 수 있습니다.
editorError.backgroundeditorWarning.backgroundeditorInfo.background

Codicons 업데이트
저희는 코드 아이콘 라이브러리에 다음의 새로운 아이콘을 추가했습니다.
check-allcircle-large-filledcircle-large-outlinepass-filledpinned-dirty
![]()
뷰 컨테이너 및 뷰를 위한 Codicon 지원
이제 뷰 컨테이너 및 뷰의 아이콘으로 Codicon을 사용할 수 있습니다. 예시:
"views": {
"explorer": [
{
"id": "npm",
"name": "NPM Scripts",
"icon": "$(code)",
"visibility": "hidden"
}
]
}
사용 가능한 아이콘 목록은 아이콘 목록을 참조하세요.
연결 편집 범위 제공자
이전에 OnTypeRenameProvider로 알려졌던 것이 이제 LinkedEditingRangeProvider라는 공개 API가 되었습니다.
문서의 특정 위치에 대해 LinkedEditingRangeProvider는 동일한 콘텐츠를 가진 범위를 연결합니다. 한 범위의 변경 사항은 다른 모든 범위에 적용될 수 있습니다.
HTML에서 이것이 작동하는 것을 볼 수 있습니다. 여는 태그의 이름을 편집하면 닫는 태그도 자동으로 업데이트됩니다.
FoldingRangeProvider.onDidChangeFoldingRanges
FoldingRangeProvider.onDidChangeFoldingRanges가 공개 API가 되었습니다. 이는 제공자의 접기 범위가 변경되었음을 알리는 선택적 이벤트입니다.
쿼리 필터로 키보드 단축키 편집기 열기
확장은 이제 workbench.action.openGlobalKeybindings 명령을 사용하여 키보드 단축키 편집기를 열 때 쿼리 텍스트를 전달할 수 있습니다.
vscode.commands.executeCommand('workbench.action.openGlobalKeybindings', 'query');
fs.isWritableFileSystem
새로운 fs.isWritableFileSystem API를 사용하면 주어진 파일 시스템이 쓰기를 지원하는지 확인할 수 있습니다. 예를 들어 example:/path/to/file URL의 문서가 쓰기 가능한 파일 시스템에 있는지 확인하려면
switch (vscode.fs.isWritableFileSystem('example')) {
case true:
// The `example` filesystem supports writing.
// Keep in mind the permissions or other issues may still prevent
// a file from being written.
break;
case false:
// The `example` filesystem does not support writing (it is readonly).
break;
case undefined:
// VS Code does not know about the `example` filesystem
break;
}
사용자 지정 편집기는 fs.isWritableFileSystem을 사용하여 읽기 전용 UI를 표시할지 여부를 결정할 수 있습니다.
Markdown 트리 툴팁 API
TreeItem에 대한 tooltip에 Markdown을 사용하는 API가 최종 확정되었습니다. TreeItem을 만들 때 tooltip을 Markdown 문자열로 설정하거나, Markdown 계산에 추가 시간이 걸릴 수 있는 경우 새 TreeDataProvider.resolveTreeItem을 사용하여 툴팁을 설정할 수 있습니다.

TreeItem 하이라이트 API
오랫동안 기다려온 TreeItemLabel API가 최종 확정되었습니다. 이 API를 사용하여 TreeItem의 label에 하이라이트를 설정할 수 있습니다. 참조 보기에서 이를 확인할 수 있습니다.

listDoubleSelection 및 listMultiSelection
기여된 트리 보기에서 명령 사용 설정을 위해 listDoubleSelection 및 listMultiSelection 컨텍스트 값을 사용하는 것이 이제 작동합니다.
보기 환영 콘텐츠 버튼 사용 설정
이제 보기 환영 콘텐츠 섹션에 대한 사용 설정 컨텍스트 절을 설정할 수 있습니다.

제안된 확장 API
모든 마일스톤에는 새로운 제안 API가 제공되며 확장 작성자는 이를 사용해 볼 수 있습니다. 언제나처럼 여러분의 피드백을 원합니다. 제안된 API를 사용하려면 다음을 수행해야 합니다.
- 제안된 API는 자주 변경되므로 Insiders를 사용해야 합니다.
- 확장의
package.json파일에 이 줄이 있어야 합니다:"enableProposedApi": true. vscode.proposed.d.ts파일의 최신 버전을 프로젝트 소스 위치로 복사합니다.
제안 API를 사용하는 확장은 게시할 수 없습니다. 다음 릴리스에서 호환성이 깨지는 변경 사항이 있을 수 있으며, 기존 확장을 깨뜨리는 일은 절대 없을 것입니다.
상태 표시줄 항목 배경색 API
상태 표시줄 항목의 배경색을 설정하기 위해 StatusBarItem에 대한 새 속성 backgroundColor를 제안합니다. 현재 상태 표시줄이 너무 화려해지지 않도록 statusBarItem.errorBackground만 지원됩니다. 향후 더 많은 색상으로 지원을 확장할 수 있습니다.

이 새 API의 사용 사례는 확장이 상태 표시줄에서 오류 조건을 나타낼 수 있도록 하는 것입니다. 예를 들어 ESLint 확장은 작업 영역에 대해 ESLint가 아직 활성화되지 않았음을 사용자에게 알리기 위해 이 색상을 사용하기로 결정할 수 있습니다.
더 많은 테마 가능한 아이콘
제품 아이콘 테마에 대한 작업이 재개되었습니다. 제품 아이콘 테마는 사용자 지정 아이콘 세트로 VS Code를 스타일링할 수 있는 제안된 기능입니다. 내장 보기의 모든 아이콘뿐만 아니라 Codicon 라이브러리의 아이콘을 사용하는 모든 확장에 대해서도 작동합니다. 제품 아이콘 테마는 다음 마일스톤에서 공개될 예정입니다.
특히 디버그, 확장 및 터미널 보기, 설정 및 노트북 편집기를 위한 더 많은 아이콘 이름이 추가되었습니다.
업데이트된 아이콘 목록을 확인하세요.
제안된 로깅 API 제거
약 1년 전에 로깅 API, LogLevel 및 onDidChangeLogLevel에 대한 제안이 있었고 이제 제거되었습니다. 확장은 로깅을 위해 출력 채널 API를 사용하거나 사용자 지정 로거를 사용하는 경우 ExtensionContext#logUri를 사용할 수 있습니다.
제안된 테스트 API의 초기 추가
VS Code에서의 테스트를 조사 중이며 API의 첫 번째 버전이 이제 vscode.proposed.d.ts에 있습니다. 추가적인 내용을 보려면 링크된 이슈를 읽고 의견이 있으면 참여하세요. API의 제공자 부분은 관찰자 부분보다 훨씬 일찍 출시될 것으로 예상합니다.
새로운 컨텍스트 키 연산자
<, <=, > 또는 >=를 이제 컨텍스트 키 표현식에 사용할 수 있습니다. 예를 들어 두 개 이상의 작업 영역 폴더가 열려 있을 때만 나타나는 명령을 기여하는 예시는 다음과 같습니다.
"contributes": {
"menus": {
...
"when": "workspaceFolderCount >= 2"
...
}
}
언어 서버 프로토콜
Language Server Protocol 3.16 버전의 기능 세트가 최종 확정되었으며 LSP 프로토콜 사이트에서 사용할 수 있습니다. 3.16 버전의 주요 내용은 다음과 같습니다.
상세한 변경 로그에는 기존 요청에 대한 모든 사소한 개선 사항도 포함되어 있습니다.
디버그 어댑터 프로토콜
조건부 예외 지원
이번 마일스톤에서는 2020년 9월의 조건부 예외 제안이 최종 확정되었으며 이제 Debug Adapter Protocol (DAP) 버전 1.43의 일부가 되었습니다.
프로토콜 추가는 setExceptionBreakpoints 요청을 예외 필터 및 해당 조건을 설정하는 새로운 선택적 filterOptions 속성으로 확장합니다. 디버그 어댑터는 supportsExceptionFilterOptions 기능을 통해 조건부 예외 기능 지원을 알릴 수 있습니다.
StackTraceResponse.totalFrames의 의미론 명확화
Debug Adapter Protocol의 supportsDelayedStackTraceLoading 기능에 대한 설명은 지연된 스택 프레임 로딩이 작동하려면 어댑터가 StackTraceResponse의 totalFrames 필드를 사용 가능한 스택 프레임의 정확한 개수로 채워야 함을 시사합니다. 그러나 일부 디버거 또는 런타임에서는 이 값을 계산하기 어려워 지연된 스택 프레임 로딩을 지원하는 데 비용이 많이 듭니다.
총 프레임 수는 UI에 표시되지 않으므로 totalFrames의 원래 다소 부족한 의미론 설명을 명확히 했습니다. 이제 디버그 어댑터는 totalFrames에 대해 큰 (잘못된) 값을 자유롭게 제공할 수 있으며 클라이언트는 요청된 프레임 수보다 적은 프레임을 받는 것에 대비해야 하며, 이를 스택의 끝에 도달했다는 표시로 사용해야 합니다.
RunInTerminalRequestArguments.cwd의 의미론 명확화
runInTerminal 요청의 cwd 속성("현재 작업 디렉토리")은 필수가 아니므로 "무시" 경우를 나타내기 위해 속성을 생략할 수 없습니다. 예를 들어 디버그 어댑터가 "cwd"가 이미 올바르다고 알고 있고 클라이언트가 "디렉토리 변경" 명령을 생성할 필요가 없음을 알고 있는 경우 DAP 사양은 이를 달성하는 방법을 설명하지 않습니다.
이러한 단점을 해결하기 위해 DAP 사양을 명확히 하여 cwd 속성이 비어 있지 않은 경로를 포함하는 경우에만 클라이언트가 디렉토리 변경 명령을 실행하도록 예상된다는 점을 추가했습니다.
엔지니어링
이슈 보고자 및 프로세스 탐색기에 대한 샌드박스 및 컨텍스트 격리 활성화
Electron의 샌드박스 및 컨텍스트 격리를 활성화하여 더 많은 피드백을 얻기 위해 프로세스 탐색기 및 이슈 보고자 창에 이를 활성화했습니다. 이 구성은 결국 메인 VS Code 창에도 기본값이 될 것입니다.
sandbox활성화됨contextIsolation활성화됨- 리소스는 사용자 지정
vscode-file스킴에서 제공됩니다 (file아님).
NPM 종속성에 대한 안전한 공급망
소스 스캔 및 테스트 서비스를 활용하여 NPM 종속성 공급망을 개선하여 빌드 파이프라인 보안 및 안정성을 높였습니다.
Linux ARM 리포지토리
ARM 아키텍처(aarch64 및 armhf)용 VS Code가 다음 Linux 리포지토리에 게시되었습니다.
새로운 명령
| 키 | 명령 | 명령 ID |
|---|---|---|
| Diff 편집기에서 기본 측면 포커스 | workbench.action.compareEditor.focusPrimarySide |
|
| Diff 편집기에서 보조 측면 포커스 | workbench.action.compareEditor.focusSecondarySide |
|
| Diff 편집기에서 다른 측면 포커스 | workbench.action.compareEditor.focusOtherSide |
문서
원격 개발
VS Code 원격 개발에 대해 알아볼 수 있는 여러 가지 새로운 방법이 있습니다.
- VS Code 원격 개발을 다루는 "Tabs versus Spaces" 동영상을 확인하세요.
- 또는 Docker 컨테이너를 개발 환경으로 사용하는 방법을 다루는 단계별 학습 모듈을 사용해 보세요.

GitHub 통합
- 이 Visual Studio Code에서 GitHub 소개 학습 모듈을 통해 편집기의 GitHub 통합을 최대한 활용하는 방법에 대해 알아보세요.

오픈 소스로 VS Code를 만드는 방법
GitHub Universe에서 개발자 Alex Ross와 Benjamin Pasero의 세션 녹화 오픈 소스로 VS Code를 만드는 방법을 시청하고 저희 팀이 VS Code를 오픈 소스로 구축하고 GitHub에서 커뮤니티와 협력하는 방법을 알아보세요.
Chromebook에서의 VS Code
Chromebook에서 VS Code를 실행할 수 있다는 사실을 알고 계셨나요? 학생 및 프로그래머 초심자에게 훌륭한 옵션이라고 생각합니다. Chromebook에서 VS Code로 배우기 블로그 게시물에서 Chrome OS( Crostini 경유)에서 VS Code를 설정하는 방법을 알아보세요. 이 게시물에는 JavaScript 및 Python을 사용하여 코딩을 시작하는 방법에 대한 지침이 포함되어 있습니다.
주요 수정 사항
- 39543: 분할 JSON 설정 편집기의 개요 눈금자에서 일치하는 단어 강조 표시.
- 67905: 여러 확장 vsix 파일 동시 설치
- 83187: 한 구성의 환경 변수가 다른 구성으로 흘러 들어갑니다.
- 88703: URI 형식 필드에 대한 오류가 설정 UI에 보고되지 않습니다.
- 97202: ${config
} 변수가 다중 루트 작업 영역 실행 구성에서 해석되지 않습니다. - 98041: Emmet가 '수학 표현식 평가'의 선택 사항을 무시합니다.
- 107320: 메인에 포함된 확장을 설치할 때 테마 선택기가 나타나지 않아야 합니다.
- 107461: 디버그 콘솔의 기록이 보존되지 않음
- 109111: 디버그 콘솔이 사용자 설정을 존중하지 않습니다.
- 110077: 데이터 중단점이 중단점 보기(Breakpoints view)에 표시되지 않습니다.
- 110426: stdin에서 읽으면서
--diff매개변수 지원 - 110738: 확장이 사용자 지정 파일 시스템 스킴에 대한 편집기 레이블을 설정하도록 허용
- 110775: Shift Right 클릭에 대한 '영구 삭제' 옵션이 사라졌습니다.
- 110854: 열린 편집기에서 파일 시스템 제공자의 읽기 전용 변경 지원
- 110902: CLI: 확장이 이미 설치된 경우 Marketplace에 연결하지 않음(강제하지 않는 한)
감사합니다
마지막으로, 이번 달 VS Code에 기여해주신 다음 분들께 진심으로 감사드립니다.
이슈 추적에 대한 기여
- John Murray (@gjsjohnmurray)
- Simon Chan (@yume-chan)
- Andrii Dieiev (@IllusionMH)
- ArturoDent (@ArturoDent)
- Alexander (@usernamehw)
vscode 기여
- Aasim Khan (@aasimkhan30)
- ListWidget escape 버튼 동작 수정 PR #110760
- 체크박스에 개요 오프셋을 추가하여 포커스를 보이게 함. PR #110038
- @AE1020: 스크롤바 클릭 시 페이지 단위 이동 PR #104923
- @alisonnoyes: Quiet Light 테마 diff 구문 강조 표시 PR #107926
- Andrew Casey (@amcasey): TS 서버 추적 노출 PR #110534
- Andrew Branch (@andrewbranch): [typescript-language-features] importModuleSpecifierPreference 값 업데이트 PR #110536
- @apogeeoak: Markdown 미리 보기 다시 열 때 오류 방지 (#_107205) PR #111449
- Jonathan Belcher (@belcherj): Firefox용 구성 논리 수정 PR #106873
- @BTNDev: 스니펫에 포함된 JavaScript 업데이트 PR #111062
- Borja Zarco (@bzarco):
folderUri없이 구성 변수 해석 시 실패 방지. PR #97203 - @chanmaoooo: 'deleteWordEntire' 명령 추가 PR #109511
- chenjigeng (@chenjigeng): HTML에서 JavaScript 작성 시 잘못된 호버 스타일 수정 PR #111110
- @dataleaky: package.json 업데이트 PR #111661
- Devansh Jethmalani (@devanshj): feat(quickinput): 프롬프트에서 codicon 지원 PR #102898
- Aadhish Sriram S (@dfireBird): feat: 기본 stash 메시지 감지 microsoft#106907 PR #107074
- @digeff: searchView/context에 대한 확장성 지점 추가 PR #109049
- Nathaniel Palmer (@diminutivesloop): 실패 시 git 명령 출력 표시 제안 PR #95354
- Dor Mesica (@dormesica): stash 삭제 전 경고 추가. PR #94267
- David Sanders (@dsanders11)
- 오류 메시지 수정 PR #111269
- vscode.Uri를 vscode.RelativePattern의 base 매개변수에 대한 타입으로 추가 PR #111155
- "Follow link" 명령의 툴팁에 레이블 사용 PR #110917
- 명령 사용 설정의 효과 명확화 PR #110423
- Array.flat() 사용 PR #110189
- Ikko Ashimine (@eltociear): 오타 'sequece'를 'sequence'로 수정 PR #109643
- Erik Krogh Kristensen (@erik-krogh): Markdown 파일을 구문 분석할 때 치명적인 백트래킹 수정 PR #109964
- Jakub Piskiewicz (@eXotech-code): 복제된 리포지토리를 자동으로 여는 설정 추가. PR #94369
- Fabio Zadrozny (@fabioz): FileSystemWatcher 제한에 대한 문서 (#_60813) PR #110858
- Himanshu Kapoor (@fleon): Jest와 함께 monaco-editor가 제대로 작동하도록 허용 PR #109833
- Ben Curtis (@Fmstrat): ignoreSubmodules 옵션 추가 PR #88772
- John Murray (@gjsjohnmurray)
- #109733 수정 제목 표시줄에서 "(읽기 전용)" 접미사 중복 방지 PR #109736
- #106487 수정 viewsWelcome 기여 버튼에 대한 'enablement' 절 구현 PR #107705
- Guillaume Lachance (@glachancecmaisonneuve): Windows 탐색기 아이콘 PR #86283
- Hung-Wei Hung (@hunghw): 변경된 파일로 빈 커밋 생성 #107753 PR #107958
- Dhruva Srinivas (@IQUBE-X): Markdown 스니펫에 정의 목록 추가 PR #110026
- Jean Pierre (@jeanp413)
- 빠르게 탐색하는 동안 확장 편집기 글리치 수정 PR #110370
- 긴 줄을 인쇄할 때 스크롤 중 터미널 지연 수정 PR #110213
- 병합 충돌 시 삭제된 파일에 대한 더 나은 diff PR #91245
- 소스 제어에서 트리 축소 상태 기억 수정 PR #89313
- Jessica Petty (@jepetty): 잘못된 Rich Nav 빌드 수정 노드 작업 추가 PR #110762
- Josias (@justjosias): 오타 hightlight -> highlight PR #108451
- @KapitanOczywisty: 비교 시 LineDecoration 순서 무시 PR #108379
- Ken Aoki (@kena0ki): xterm.css 업데이트 PR #109850
- Wenlu Wang (@Kingwl)
- Oliver Larsson (@LarssonOliver): git.pruneOnFetch 설정 구현 PR #89249
- Jiaxun Wei (@LeuisKen): ExtensionUrlBootstrapHandler에서 OpenURLOptions 캐싱 PR #110725
- Jade (@lf-): 명시적 fontLigatures 설명 PR #109987
- Logan Rosen (@loganrosen): .ember-cli를 json 대신 jsonc로 표시 PR #110541
- Mohammed Al-Dahleh (@maldahleh): #109255 - 설정 "파일: 인코딩" 드롭다운에 인코딩 설명 추가 PR #109551
- Mathias Rasmussen (@mathiasvr): git amend 메시지만 허용 PR #91838
- MD Asif Hasan (@mdasifhasan): Pull and Sync에 대한 fetchOnPull 동작 수정 PR #99324
- Seth Fitzsimmons (@mojodna): 오타: Uncommited → Uncommitted PR #109119
- Nicholas Rayburn (@nrayburn-tech): launch.json에 dirSep 변수 추가 PR #105887
- oli (@olivercoad): 여러 문자 자동 닫기 쌍의 충돌 처리 PR #110094
- @Pikachu920: 피드백 URL에 "null"이 원치 않게 연결되는 것 방지 PR #111325
- Pablo Sebastian Greco (@psgreco)
- armhfp 및 aarch64 rpm 하드코딩된 종속성 추가 정리 PR #111253
- armv7hl 및 aarch64에 대한 하드코딩된 rpm 종속성 수정 PR #111198
- Rotem Bar (@rotem-bar): feat(extensions): 활성화된 종속성이 있는 확장을 비활성화할 때 관련 종속성을 비활성화하는 옵션 추가 PR #104997
- Andreas Ziegler (@rupran): scmViewPane: 커밋 메시지 입력 필드에서 공백 렌더링 안 함 PR #107913
- Dmitry Sharshakov (@sh7dm): Git: stash 전에 저장되지 않은 파일 저장 여부 묻기 PR #94358
- Shivang Tripathi (@shivangg): feat: npm.packageManager 자동 감지 #102050 PR #102494
- Shunsuke Iwamoto (@shskwmt): #93946 수정. 스크롤 시 포커스 제거. PR #94280
- Emanuel Tesař (@Siegrift): tsec을 언어 서비스 플러그인으로 활성화 PR #108682
- Jonathan Mannancheril (@SneakyFish5)
- Git: cherryPick 명령 추가 PR #104614
- git.pushTags 설정 추가 PR #104312
- Scott Davis (@stdavis): feat: Git: Push Tags 명령 구현 PR #110096
- Suman B K (@sumanbk92): `를 foldEndPairCharacters의 일부로 포함 PR #110108
- Tim (@Timmmm): atomic tabs 옵션 추가 PR #107126
- @turara
- OneSnippet#move 메서드 업데이트하여 #96545 수정. PR #108964
- SearchView에 updateTextFromFindWidgetOrSelection 메서드 추가 PR #108401
- CodeActionOnSaveParticipant 업데이트 PR #108193
- Alexander (@usernamehw)
- 언어와 관계없이 단어 기반 제안을 포함하는 설정 추가 PR #110494
- #99971 수정 - 기능 기여(Feature Contributions)에 활성화 이벤트 표시 PR #100010
- Valter Pires (@vfcp): "Tomorrow Night Blue" 테마에 대한 package.nls.json의 themeLabel 수정 PR #110178
- Jason Wang (@wangjaso): git.api.getRemoteSources에 대한 기본 제공업체 옵션 제공 PR #106368
- Eno Yao (@Wscats)
- 키 바인딩 브라우저 컨텍스트 키 지원 PR #110902
- 크거나 작음 지원 PR #110846
- 코드 가독성 최적화 PR #110572
- @xndcn: 미니맵 슬라이더 오버레이 영역 수정 PR #108448
- winwin2011 (@YuJianghao): 진행률 비트 오버플로우 버그 수정 PR #110411
- Zuckjet (@Zuckjet): 단어 내에서 호버 정보가 깨지지 않아야 함 PR #106885
language-server-protocol 기여
- @KamasamaK
- Danny Tuppeny (@DanTup): 사양 구문 분석 단순화를 위한 조정 PR# 1156
vscode-languageserver-node에 기여
- Niccolò Belli (@darkbasic): ShowTextDocumentRequest 구현 PR #490
- Danny Tuppeny (@DanTup): onProgress에서 미들웨어 지원 추가 PR #690
- Julien HENRY (@henryju): appName을 'vscode' 대신 클라이언트 정보로 사용 PR #697
vscode-eslint 기여
vscode-js-debug 기여
- Momtchil Momtchev (@mmomtchev): 외부 Node 내부 디버깅 지원 추가 PR #824
vscode-html-languageservice에 대한 기여
- Jean Pierre (@jeanp413): 자동 완성 텍스트 편집기 출력 </[object Object]> 수정 PR #93
node-jsonc-parser에 대한 기여
- Dan Russell (@dangrussell): typings 속성 값에 파일 확장명 추가 PR #43
vscode-generator-code에 대한 기여
- Tom Sherman (@tom-sherman): 지원 중단된
assert.equal을strictEqual로 교체 PR #229 - Tomáš Hübelbauer (@TomasHubelbauer): CLI를 통해 gitInit, pkgManager 및 webpack 전달 허용 PR #227
vscode-vsce 기여
- Fabian Meumertzheim (@fmeum): *.vsix에서 package.json이 쓰기 가능한지 확인 PR #508
- James George (@jamesgeorge007): chore: 불필요한 코드 제거 PR #511
- Matan Gover (@matangover): presense -> presence PR #510