2023년 1월 (버전 1.75)
업데이트 1.75.1: 이번 업데이트는 다음 이슈들을 해결합니다.
다운로드: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code 2023년 1월 릴리스에 오신 것을 환영합니다. 이번 버전에는 여러분이 좋아하실 만한 많은 업데이트가 포함되어 있으며, 주요 내용 중 일부는 다음과 같습니다.
- 프로필 - 확장, 설정, 바로가기 등을 구성하기 위한 프로필을 만들고 공유하세요.
- VS Marketplace 확장 서명 - 게시된 확장은 이제 기본적으로 코드 서명됩니다.
- 접근성 개선 - 터미널 화면 판독기 모드, 새로운 키보드 단축키.
- 간편한 다중 뷰 크기 조정 - 레이아웃 모서리를 드래그하여 여러 뷰의 크기를 한 번에 조정하세요.
- 트리 뷰 검색 기록 - 트리 뷰에서 이전 검색을 빠르게 다시 실행하세요.
- 터미널 링크 감지 개선 - 공백, 괄호, 줄 및 열 형식을 포함하는 링크를 감지합니다.
- 새 Git 명령 - VS Code 내에서 스테이징된 변경 사항을 임시 저장하고 원격 태그를 삭제하세요.
- Dark+ 및 Light+ V2 테마 - 실험적인 색상 테마를 사용해보고 의견을 알려주세요.
- Jupyter Notebook 주제 - 웹에서 노트북 사용, Jupyter 커널 관리 방법.
- VS Code의 AI 도구 - GitHub Copilot을 사용한 AI 기반 자동 완성에 대해 알아보세요.
이 릴리스 노트를 온라인으로 읽으려면 code.visualstudio.com의 업데이트로 이동하십시오.
Insider: 새로운 기능을 최대한 빨리 사용해 보고 싶으신가요? 야간 빌드인 Insider 빌드를 다운로드하고 사용 가능한 최신 업데이트를 즉시 사용해 보세요.
하우스키핑
이전 릴리스 노트에서 팀은 정리 작업을 보고했으며, 여기에서도 동일하게 하고자 합니다.
2022년 11월에 발표한 대로, 12월은 GitHub 이슈 및 풀 리퀘스트 정리 작업에 사용되었습니다 (당사의 이슈 정리 가이드 참조). 모든 리포지토리에서 총 3637개의 열린 이슈 및 풀 리퀘스트가 감소했습니다. 놀랍지 않게도, 감소분의 대부분은 상위 5개 리포지토리에서 발생했습니다: microsoft/vscode (2520), microsoft/vscode-jupyter (374), microsoft/vscode-remote-release (278), microsoft/vscode-python (220), 및 microsoft/vscode-pull-request-github (160).
접근성
차이점 탐색 개선
다음/이전 변경 사항으로 이동 기능에 오디오 큐가 추가되어 줄이 삽입, 삭제 또는 수정되었는지 표시합니다. 또한, 화면 판독기가 읽을 수 있도록 변경된 줄이 선택됩니다.
터미널 접근성 모드
터미널: 접근 가능한 버퍼 포커스 (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) 명령은 화면 판독기가 키보드를 통해 터미널 버퍼를 탐색할 수 있도록 합니다.
터미널 접근성 도움말
편집기의 **접근성 도움말 보기** 명령과 유사하게, **터미널: 터미널 접근성 도움말 보기** () 명령은 화면 판독기 사용자에게 중요한 정보를 제공합니다.

작업 영역 신뢰 편집기 바로가기
**작업 영역: 작업 영역 신뢰 관리**를 통해 열 수 있는 작업 영역 신뢰 편집기의 키보드 접근성을 개선하기 위해, 이제 Ctrl/Cmd+Enter를 사용하여 현재 작업 영역에 대한 신뢰를 토글하거나 Ctrl/Cmd+Shift+Enter를 사용하여 부모 폴더에 대한 신뢰를 토글할 수 있습니다.

설정 편집기 표시기에서 키보드 탐색 개선
"다른 위치에서 수정됨" 표시기와 "기본값 변경됨" 표시기와 같이 여러 표시기가 있는 설정의 경우, 이제 왼쪽 및 오른쪽 화살표 키를 사용하여 표시기 간을 탐색합니다. 이 변경 사항으로 사용자는 Tab 키를 한 번만 눌러 표시기에서 벗어날 수 있습니다.
프로필
VS Code에서 **프로필** 기능이 이제 일반 공급됨을 기쁘게 생각합니다. 프로필은 확장, 설정, 키보드 단축키, UI 상태, 작업 및 사용자 스니펫을 포함할 수 있습니다. 데이터 과학, 문서 작성 또는 Python 또는 Java와 같은 여러 프로그래밍 언어와 같이 다른 개발 시나리오에 맞게 VS Code를 사용자 지정할 수 있습니다. "업무" 또는 "데모"와 같은 다른 워크플로우 기반의 VS Code 설정이 있다면, 이를 다른 프로필로 저장할 수도 있습니다. 여러 작업 영역(폴더)을 서로 다른 프로필이 동시에 적용된 상태로 열 수 있습니다.
다음 이미지는 작업 설정을 위해 사용자 지정된 **업무** 프로필과 함께 열린 폴더를 보여줍니다.

동료, 친구 또는 학생과 공유하기 위해 프로필을 내보내고 가져올 수도 있어 VS Code 시작에 도움을 줄 수 있습니다.
다음 동영상은 GitHub gist를 사용하여 프로필을 내보내 공유하는 방법을 보여줍니다. 프로필 링크를 받은 사용자는 웹용 VS Code에서 공유된 프로필을 미리 보고 로컬 VS Code 인스턴스로 가져올 수 있습니다.

참고: 프로필은 현재 GitHub Codespaces와 같은 원격 시나리오에서는 작동하지 않지만, 이를 가능하게 하기 위해 작업 중입니다. 이슈 #165247에서 진행 상황을 추적할 수 있습니다.
워크벤치
다중 뷰 크기 조정 지원 개선
이제 뷰의 모서리를 드래그하여 여러 뷰의 크기를 동시에 조정할 수 있습니다.
격자 레이아웃 개선
편집기가 최소화된 경우, 전체 워크벤치 또는 사이드바 크기를 조정할 때 격자가 해당 상태를 유지합니다. 아래 짧은 비디오에서는 오른쪽 최소화된 편집기의 너비가 전체 편집기 영역이 확장됨에 따라 일정하게 유지됩니다.
레이아웃 사용자 지정 명령에서 기본값 복원
명령을 트리거하거나 사용자 지정 제목 표시줄의 레이아웃 컨트롤을 사용하여 사용자 지정 **레이아웃 사용자 지정** 명령을 작업할 때, 레이아웃 컨트롤의 오른쪽 상단에 있는 되돌리기 화살표 버튼을 사용하여 **기본값 복원**할 수 있습니다.

패널에서 패널 정렬 관리
이제 패널 위치와 마찬가지로 패널 컨텍스트 메뉴에서 직접 패널 정렬을 조정할 수 있습니다.

기본 설정 메뉴 간소화
전역 설정을 위해 **기본 설정** 메뉴를 간소화하고 옵션을 더 논리적인 순서와 그룹으로 구성했습니다.

트리 찾기 기록
트리 뷰 내의 찾기 컨트롤이 이제 기록 탐색을 지원합니다. 위/아래 화살표 키를 사용하여 이전 검색 기록을 탐색할 수 있습니다.
트리 찾기 연속 일치
트리 뷰 찾기 컨트롤이 이제 기존의 "퍼지" 일치와 함께 연속 일치를 지원합니다. 아래 비디오에서는 처음에 "src"를 검색하면 "resource"와 같은 일치가 나타납니다. **퍼지 일치** 토글 버튼을 통해 "퍼지" 일치가 비활성화되면, 연속 텍스트 "src"와 일치하는 텍스트만 강조 표시됩니다.
페이지 단위 목록 스크롤
새 설정 workbench.list.scrollByPage를 통해 스크롤 막대를 직접 클릭했을 때 목록이 페이지 단위로 스크롤될지 여부를 구성할 수 있습니다.
목록 유형 탐색 모드
새로운 workbench.list.typeNavigationMode 설정을 통해 목록의 유형 탐색 모드를 구성할 수 있습니다. 기본값(설정 값 automatic)에서는 입력하는 동안 목록 및 트리에서 탐색이 발생합니다. 특정 시점에만 탐색을 활성화하려면 typeNavigationMode를 trigger로 설정하고 list.triggerTypeNavigation 명령을 실행해야 목록이 유형 탐색 모드로 전환됩니다.
list.triggerTypeNavigation 명령은 기본적으로 키 바인딩이 없지만 사용자 지정할 수 있습니다. 예를 들어, / 키를 누른 후 유형 탐색 모드로 들어가려면 다음과 같은 키 바인딩을 추가할 수 있습니다.
{
"key": "/",
"command": "list.toggleKeyboardNavigation",
"when": "listFocus"
}
대용량 파일 열기 시 새 확인
특히 네트워크 전송으로 인한 실제 비용이 발생할 수 있는 원격 환경에서 매우 큰 파일을 실수로 여는 것을 방지하기 위해, 파일을 열기 전에 확인 메시지가 표시됩니다. 이 제한은 새 workbench.editorLargeFileConfirmation 설정을 통해 수정할 수 있으며, 로컬 파일 열기와 원격 파일 열기에 따라 기본값이 다릅니다.

파일 감시기가 files.watcherExclude glob 패턴 지원
files.watcherExclude 설정은 강력한 파일 감시기 제외 규칙을 위한 glob 패턴을 지원합니다. 그러나 glob 패턴은 파일 감시 라이브러리에서 네이티브로 지원되지 않았습니다. 이번 마일스톤에서는 특히 Linux에서 리소스 사용 효율성을 높이기 위해 제외를 위한 glob 패턴 지원을 기여했습니다.
Linux의 경우, 대규모 작업 영역에서 파일 변경 사항을 감시할 수 없다는 오류가 발생하면 이 FAQ 항목를 참조하여 파일 감시 문제에 대한 자세한 정보를 확인하세요.
키보드 단축키 편집기 개선
키 바인딩을 제공하는 확장 프로그램 표시
키보드 단축키 편집기는 이제 **소스** 열에 키 바인딩을 제공하는 확장을 표시합니다. 확장 프로그램 이름을 선택하여 확장 프로그램의 상세 페이지를 열 수 있습니다.

확장 프로그램 컨텍스트 메뉴에서 사용 가능한 **확장 프로그램 키보드 단축키** 작업을 사용하여 확장 프로그램이 제공하는 모든 키 바인딩을 검색할 수도 있습니다.

when 절 속성에 대한 컨텍스트 키 제안 표시
키보드 단축키 편집기는 이제 when 속성에 대한 컨텍스트 키 제안을 표시합니다. Ctrl+Space 단축키를 사용하여 제안을 트리거할 수 있습니다.

코드 조각이 있는 키 바인딩 검색
키보드 단축키 편집기는 이제 코드 조각이 있는 키 바인딩을 검색할 수 있습니다. 예를 들어, "Ctrl+K"는 Ctrl+K를 첫 번째 코드 조각으로 포함하는 모든 키 바인딩을 표시합니다.
쉘 환경 해상도 시간 제한 구성 설정
새로운 설정 application.shellEnvironmentResolutionTimeout (macOS 및 Linux 전용)을 사용하면 쉘 환경을 해결해야 할 때 시간 제한을 늘릴 수 있습니다. 기본적으로 VS Code는 환경이 해결될 때까지 최대 10초를 기다리지만, 복잡한 쉘 설정의 경우 이 시간이 부족할 수 있습니다.
VS Code가 쉘 환경을 해결하는 방법에 대한 자세한 내용은 이 FAQ 항목을 참조하세요.
새로운 VSCODE_RESOLVING_ENVIRONMENT 환경 변수
VS Code가 사용자 쉘 환경을 해결할 때, 이제 새로운 환경 변수 VSCODE_RESOLVING_ENVIRONMENT를 1로 설정합니다. 이는 쉘 환경 해결 컨텍스트에서 실행되는지 알아야 하는 사용자 스크립트(예: .bashrc)에 유용합니다.
업데이트 후 릴리스 노트에서 더 쉽게 제외
이제 릴리스 노트 편집기에서 직접 모든 업데이트 후 릴리스 노트를 읽는 것을 제외할 수 있습니다. 이는 update.showReleaseNotes 설정을 반영하고 업데이트합니다.

편집기
제안 선택 모드
입력하면서 또는 트리거 문자를 통해 제안이 자동으로 선택되는지 여부를 구성할 수 있는 새 설정(editor.suggest.selectionMode)이 있습니다.
기본값은 항상 최적의 제안을 선택하여 Enter 또는 Tab을 누르면 삽입됩니다. 제안이 선택되지 않도록 하려면 값을 never, whenQuickSuggestion, 또는 whenTriggerCharacter로 설정하세요. 이러한 설정 값을 사용하면 제안은 계속 표시되지만 자동으로 선택되지 않으며 화살표 키를 사용하여 하나를 선택할 수 있습니다.
이 설정은 명시적으로 Ctrl+Space를 통해 트리거되는 제안에는 적용되지 않고 자동 제안에만 적용됩니다.
코드 액션 목록 이제 스크롤 가능
일부 확장 프로그램은 긴 코드 액션 목록을 생성합니다. 모든 코드 액션을 렌더링할 공간이 없으면 이제 목록을 스크롤할 수 있습니다.
색상 장식자 제한
편집기에 표시되는 색상 장식자의 수는 500개로 제한됩니다. 이는 다수의 색상이 포함된 파일을 열 때 성능 문제를 방지하기 위한 것입니다. 이 제한은 이제 editor.colorDecoratorsLimit 설정을 통해 구성할 수 있습니다.

편집기 찾기 일치 항목으로 이동
새 **일치 항목으로 이동...** 명령을 사용하면 찾기 컨트롤이 열려 있을 때 개수에 따라 파일의 특정 일치 항목으로 이동할 수 있습니다. 일치 항목이 많은 경우 특정 항목으로 이동하려는 경우 유용합니다.

인라인 제안 도구 모음 재설계
이번 마일스톤에서는 인라인 제안 도구 모음을 더 작고 사용하기 쉽게 재설계했습니다. 대안 제안을 빠르게 순회하고 제안을 전체적으로 또는 단어별로 수락하는 버튼이 있습니다.
아래 비디오에서는 사용자가 주석 프롬프트에서 트리거된 GitHub Copilot이 제공한 두 가지 제안을 검토한 후, 먼저 console을 점진적으로 수락하고 다음 단어인 console.log를 수락합니다.

"editor.inlineSuggest.showToolbar": "always" 설정은 인라인 제안이 있을 때 항상 도구 모음을 표시하는 데 사용할 수 있습니다.
또한 단어별로 제안을 수락/취소하기 위한 기본 키 바인딩(Ctrl+Arrow Left/Arrow Right)을 추가했습니다.
터미널
새 기본 키 바인딩
다음 기본 키 바인딩이 고급 터미널 기능의 발견 가능성을 높이기 위해 추가되었습니다.
감지된 링크 열기 - Ctrl/Cmd+Shift+O
**감지된 링크 열기** 명령 (⇧⌘O (Windows, Linux Ctrl+Shift+O))은 키보드로 터미널 링크를 열 수 있는 방법입니다. 이 명령은 터미널 뷰포트의 모든 사용 가능한 링크가 있는 빠른 선택 창을 엽니다.

⇧⌘O (Windows, Linux Ctrl+Shift+O) 키 바인딩은 터미널의 **편집기에서 기호로 이동**과 유사한 동작이지만 터미널용이기 때문에 선택되었습니다.
최근 디렉토리로 이동 - Ctrl/Cmd+G
최근 디렉토리로 이동 (⌘G (Windows, Linux Ctrl+G))은 쉘 통합으로 수집된 최근 디렉터리가 있는 빠른 선택 창을 엽니다. 고정 및 퍼지 일치를 지원합니다.

이 키 바인딩은 Ctrl+G가 상대적으로 사용 빈도가 낮은 쉘 키 바인딩이기 때문에 선택되었습니다.
Ctrl+G를 쉘로 보내기 - Ctrl+Alt+G
Ctrl+G가 이제 **최근 디렉토리로 이동**에 사용되므로, Ctrl+Alt+G를 사용하여 Ctrl+G를 쉘로 직접 보내는 새로운 방법입니다.
최근 명령 실행 - Ctrl+Alt+R
최근 명령 실행 (⌃⌥R (Windows, Linux Ctrl+Alt+R))은 대부분의 쉘에서 역 인덱스 검색(Ctrl+R)과 유사하지만 더 접근성이 좋고 기능이 뛰어난 패키지로, 실행된 최근 명령이 있는 빠른 선택 창을 엽니다. 고정 및 퍼지 일치를 지원합니다.

⌃⌥R (Windows, Linux Ctrl+Alt+R) 키 바인딩은 Ctrl+R과 다른 동작이지만, 해당 키 바인딩은 기본 동작을 덮어쓰기에는 너무 중요하기 때문에 선택되었습니다.
접근성 모드 재정의
역 인덱스 검색은 화면 판독기에 그다지 접근성이 좋지 않기 때문에, 접근성 모드가 켜져 있을 때 Ctrl+R은 최근 명령 실행을 트리거하고, Ctrl+Alt+R은 Ctrl+R을 쉘로 보냅니다.
링크 개선
이번 릴리스에서는 터미널의 링크 감지에 많은 개선이 있었습니다.
-
특정 조건에서 공백이 포함된 링크 감지
- 전체 줄이 링크인 경우.
- Python 스타일 스택 추적 링크:
File "<path>", line <line> - 일부 컴파일러 오류:
<path>(<line>,<col>) : ... - 독립적으로 스타일링된 텍스트 섹션은 모두 개별적으로 감지되므로, 경로에 밑줄이 있으면 공백이 포함되어 있더라도 감지됩니다.
-
[및]문자를 포함하는 링크가 이제 작동하며, 다음과 같은 어려운 엣지 케이스에서도 감지를 지원합니다.![Links that end in the ] character will be detected, even when the whole link is wrapped in [ and ]](/assets/updates/1_75/terminal-square-bracket.png)
-
vscode://프로토콜 링크가 이제 감지됩니다. -
Windows에서
/mnt/,\\wsl$\및\\wsl.localhost\링크가 이제 감지됩니다. -
OSC 하이퍼링크 지원은 v1.72에 추가되었으며, 이러한 링크에 자주 사용되는 일반적인
file://프로토콜이 이제 지원됩니다 (예:ls --hyperlink). -
terminal.integrated.enableFileLinks설정은 이제"notRemote"옵션을 제공하여, 파일 존재 확인이 성능 문제를 일으킬 수 있는 원격 환경에서만 조건부로 비활성화할 수 있도록 합니다.
대부분의 링크 형식은 다음 줄 및 열 형식도 일관되게 지원합니다.
<file>:<line><file>:<line>:<column><file> <line><file> <line>:<column><file>(<line>)<file>(<line>,<column>)<file>(<line>, <column>)<file> (<line>)<file> (<line>,<column>)<file> (<line>, <column>)- 작은따옴표 또는 따옴표 없음도 이러한 형식에 대해 작동합니다.
"<file>",<line>"<file>",<line>:<column>"<file>", line <line>"<file>", line <line>, col <column>"<file>", line <line>, column <column>"<file>":line <line>"<file>":line <line>, col <column>"<file>":line <line>, column <column>"<file>": line <line>"<file>": line <line>, col <column>"<file>": line <line>, column <column>"<file>" on line <line>"<file>" on line <line>, col <column>"<file>" on line <line>, column <column>
터미널 편집기 파일 드래그 앤 드롭 지원
터미널 편집기는 이제 Shift 키를 누른 상태에서 드래그 앤 드롭을 지원하여 편집기를 여는 대신 파일을 터미널에 씁니다.

"안전하지 않은" 프로필 감지
Windows에서 Cygwin 쉘 감지는 최근 보안 취약점으로 인해 제거되었습니다. 이번 릴리스에서는 이를 더 안전한 형태로 복원하고 Cygwin, Cmder 및 MSYS2를 포함한 더 많은 쉘 프로필을 감지합니다. 보안 문제를 완화하기 위해, 이러한 프로필 중 하나가 사용되기 전에 **기본 프로필 선택** 명령을 통해 구성해야 합니다.


선택 시, settings.json 파일에 추가되기 전에 경고가 표시되며 일반 프로필처럼 작동합니다.

이 경고는 컴퓨터가 여러 사용자에 의해 사용되지 않는 경우(예: 기업 환경) 안전하게 무시할 수 있습니다.
터미널 뷰에서 토글 명령
오랫동안 요청되어 온 **터미널 지우기** 명령을 터미널 뷰 동작에 추가했지만, UI의 비대함에 대한 우려가 있었습니다. 새로운 내부 기능 덕분에 기본적으로 숨겨져 있지만 마우스 오른쪽 버튼 클릭으로 표시할 수 있는 오버플로 메뉴에 나타나는 새로운 숨김 동작이 있습니다.


Windows에서 Ctrl+C로 선택 항목 취소
Windows는 선택 항목이 있는지 여부에 따라 복사 및 SIGINT 전송 사이에 Ctrl+C를 공유합니다. 일반적인 불편함은 실수로 선택을 했지만 Ctrl+C가 SIGINT를 전송하지 않는 것이었습니다. 이를 완화하기 위해, 선택 항목을 복사하는 Ctrl+C는 이제 선택 항목도 취소하므로 Ctrl+C를 두 번 누르면 1번 또는 2번 SIGINT가 안정적으로 전송됩니다.
터미널 탭 정지 너비 설정 추가
새 설정 terminal.integrated.tabStopWidth는 터미널의 탭 정지 너비를 구성합니다. 프로그램이 구성에서 탭 크기를 구성하는 대신 \t 문자를 출력할 때 유용합니다.
Powerline 삼각형 및 대각선 사용자 정의 글리프
GPU 가속 터미널은 이제 삼각형 및 대각선 Powerline 추가 기호 글리프(U+E0B8-U+E0BF)에 대한 픽셀 단위의 사용자 정의 글리프를 얻습니다. 이 문자는 단일 너비 또는 이중 너비 문자인지 여부가 모호하며 사용된 글꼴에 따라 다르므로 단일 너비로 렌더링하는 것을 선택했습니다.
이전

이후

"활성 터미널에서 선택된 텍스트 실행"에서 사용되는 괄호 붙은 붙여넣기 모드
**활성 터미널에서 선택된 텍스트 실행** 명령은 이제 지원되는 쉘에서 "괄호 붙은 붙여넣기 모드"를 사용하여 텍스트를 실행하므로, 여러 줄 선택은 여러 명령이 아닌 단일 입력으로 처리됩니다. 이렇게 하면 실제 스크립트를 실행하는 것이 훨씬 직관적이고 오류가 줄어듭니다.
이전

이후

Pwsh 미리보기 피드백 제공자에 대한 빠른 수정
PowerShell 미리보기는 최근 새로운 플러그형 피드백 제공자 시스템을 구현하여 명령 실패 시 제안을 출력할 수 있도록 했습니다.

터미널은 이제 [General] 및 [cmd-not-found] 피드백 제공자에서 빠른 수정을 가져옵니다. 빠른 수정 대화 상자는 전구 아이콘을 클릭하거나 Ctrl/Cmd+.를 통해 열 수 있습니다.
소스 제어
새로운 명령
Git 2.35는 git stash 명령에 새로운 --staged 모드를 도입했습니다. 이 새로운 모드를 사용하면 스테이징된 변경 사항만 쉽게 임시 저장할 수 있습니다. 이 새로운 모드를 지원하는 Git 버전을 사용하는 경우, 새로운 **Git: 스테이징된 항목 임시 저장** 명령을 사용하여 활용할 수 있습니다.
VS Code는 이미 **Git: 태그 삭제** 명령을 사용하여 로컬 태그 삭제를 지원했습니다. 이번 마일스톤에서는 새로운 **Git: 원격 태그 삭제** 명령을 사용하여 원격 태그 삭제를 활성화했습니다.
부모 폴더의 Git 리포지토리
VS Code는 git rev-parse --show-toplevel을 사용하여 Git 리포지토리의 루트를 결정합니다. 대부분의 경우 Git 리포지토리의 루트는 작업 영역 내에 있지만, Git 리포지토리의 루트가 작업 영역 또는 열린 파일의 부모 폴더에 있는 시나리오도 있습니다. 작업 영역 또는 열린 파일의 부모 폴더에 있는 Git 리포지토리를 여는 것은 고급 사용자에게 훌륭한 기능이지만, 신규 사용자에게는 혼란을 줄 수 있습니다. 이 혼란으로 인해 이러한 Git 리포지토리의 변경 사항을 삭제하여 데이터 손실이 발생하는 경우가 있었습니다.
혼란을 피하고 데이터 손실 위험을 줄이기 위해, 이번 마일스톤부터 VS Code는 알림 및 소스 제어 뷰에 새 환영 뷰를 표시하고, 작업 영역 또는 열린 파일의 부모 폴더에서 Git 리포지토리를 자동으로 열지 않습니다.

테마: Dark+ V2 및 MacOS Modern 제품 아이콘
**리포지토리 열기** 버튼을 누르면 작업 영역 또는 열린 파일의 부모 폴더에서 검색된 모든 Git 리포지토리 목록이 포함된 빠른 선택 창이 열립니다. 부모 폴더에서 Git 리포지토리를 여는 선택은 기억됩니다.
사용자는 git.openRepositoryInParentFolders 설정을 사용하여 부모 폴더의 Git 리포지토리가 처리되는 방식을 제어할 수 있습니다. 이전 동작을 복원하려는 사용자는 git.openRepositoryInParentFolders 설정을 always로 설정할 수 있습니다.
명령 비활성화
Git 리포지토리의 크기 또는 다양한 Git 훅의 존재 여부에 따라 일부 Git 작업은 완료하는 데 오랜 시간이 걸릴 수 있습니다. 과거에는 이전 명령이 아직 진행 중일 때 명령을 시작하면 예상치 못한 결과(예: 커밋 작업이 진행 중일 때 파일 변경 사항 삭제)가 발생할 수 있었습니다.
이를 방지하기 위해 다음 작업이 진행 중일 때는 대부분의 Git 명령을 비활성화합니다: Checkout, Commit, Push, 및 Pull. 이는 이러한 작업이 실행되는 동안 대부분의 Git 명령이 명령 팔레트에 표시되지 않고, 소스 제어 뷰 및 상태 표시줄에서 비활성화됨을 의미합니다.
사용자 인터페이스 개선
이번 마일스톤에서는 소스 제어 UI 요소를 일부 다듬었습니다.
- 소스 제어 뷰의 **커밋** 및 **브랜치 게시** 액션 버튼의 툴팁에 이제 브랜치 이름이 포함됩니다.
- **체크아웃** 상태 표시줄 항목은 이제 체크아웃된 참조 유형(브랜치, 태그 또는 커밋)에 따라 다른 아이콘을 사용합니다.
- **체크아웃** 상태 표시줄 항목은 이제 체크아웃 작업이 진행 중일 때 회전하는 진행률 아이콘을 표시합니다.
노트북
커널 선택기 개선
MRU(최근 사용한) 커널 선택기를 계속 개선했습니다. notebook.kernelPicker.type을 mru로 설정하여 활성화할 수 있습니다. 사용되지 않는 커널은 **다른 커널 선택...**이라는 보조 선택기로 이동됩니다. 최신 Jupyter 및 Python 확장이 설치된 경우 이 선택기는 모든 커널을 소스별(예: Jupyter 커널, Python 환경 등)로 그룹화합니다.

선택된 셀 병합
kb(notebook.cell.joinSelected)`) 명령 **선택된 셀 병합**은 여러 선택된 셀을 하나의 셀로 병합하는 새로운 명령입니다.

출력을 지원되는 mimetype으로 대체 렌더링
IPyWidgets와 같은 Jupyter Notebook의 풍부한 출력은 커널의 수명 주기 동안만 볼 수 있습니다. 이는 노트북이 닫혔다가 다시 열리면 출력이 더 이상 보이지 않는다는 것을 의미합니다. 그러나 이러한 경우 중 다수에서는 대체 메커니즘을 사용하여 출력을 렌더링할 수 있습니다. 예를 들어, IPyWidget은 경우에 따라(사용된 위젯에 따라) 정적 이미지 또는 HTML 콘텐츠로 렌더링될 수 있습니다.
결과적으로 matplotlib 위젯(또는 유사한 위젯)이 있는 기존 노트북을 여는 사용자는 코드를 다시 실행할 필요 없이 출력을 볼 수 있습니다.

새로운 문서
VS Code에서 Jupyter Notebook 작업을 돕는 두 가지 새로운 주제가 있습니다.
- 웹에서 Jupyter Notebook - vscode.dev 또는 GitHub Codespaces에서 노트북 실행.
- Jupyter 커널 관리 - 노트북을 다양한 Jupyter 커널에 연결하는 방법 알아보기.
디버깅
JavaScript 디버깅
Node.js 시작 성능 개선
Node.js 디버깅에 사용되는 '중단점 예측기'가 다시 작성되고 개선되어 대규모 프로젝트의 속도가 크게 향상되었습니다. 예를 들어, TypeScript 리포지토리에서 단위 테스트를 디버깅할 때 시작 시간 오버헤드가 62% 감소했으며, VS Code 리포지토리에서 빌드를 디버깅하고 시작하는 오버헤드가 80% 감소했습니다.
중단점이 히트하지 않는 등의 문제가 발생하면 이슈를 신고하십시오. launch.json에서 "enableTurboSourcemaps": false를 설정하여 새 동작을 비활성화할 수 있지만, 이 옵션은 확신이 생기면 결국 제거될 것입니다.
언어
JavaScript React 언어 레이블이 이제 JavaScript JSX로 변경됨
JavaScript React 언어 모드는 JSX 구문이 React뿐만 아니라 더 많은 것에서 사용된다는 것을 반영하기 위해 JavaScript JSX로 이름이 변경되었습니다. TypeScript React도 TypeScript JSX로 이름이 변경되었습니다.
UI에 표시되는 언어 이름만 변경되었음을 유의하십시오. 내부 언어 ID(javascriptreact 및 typescriptreact)는 호환성을 위해 변경되지 않았습니다.
새로운 shellscript 문법
VS Code는 이제 shellscript 구문 강조를 위해 better-shell-syntax의 새로운 문법을 사용합니다.
확장
VS Marketplace 확장 서명
2022년 11월부터 Visual Studio Marketplace에 업로드된 모든 확장은 VS Marketplace에 의해 코드 서명됩니다. 사용자가 VS Code의 확장 뷰를 통해 서명된 확장을 설치하면, VS Code는 서명을 확인하여 확장이 실제로 VS Marketplace에서 온 것이고 확장 패키지가 수정되지 않았음을 증명합니다. 서명 확인에 실패하면 VS Code는 확장을 설치하지 않습니다.
VS Marketplace는 기존 확장 프로그램(11월 이후 업데이트되지 않은 확장 프로그램 포함)에 대한 서명 작업을 진행 중입니다. 이 프로세스가 완료되면 몇 달 안에 VS Code는 VS Marketplace에서 오는 모든 확장이 VS Marketplace에 의해 서명되도록 요구할 것입니다. 이 요구 사항은 VS Marketplace에서 오는 모든 패키지의 무결성을 보장하여 확장 생태계 전반의 보안을 개선할 것입니다.
참고: 확장 작성자는 Marketplace 서명에 옵트인하기 위해 아무것도 할 필요가 없습니다. Marketplace 서명 외에도 현재 게시자 서명을 작업 중입니다. 게시자 서명에 대한 자세한 내용은 토론 #137에서 확인할 수 있습니다.
CLI에서 확장 버전 고정
CLI(code --install-extension {publisher}.{name}@{version})에서 특정 버전의 확장을 설치할 때, 해당 버전으로 고정됩니다. 이는 자동 업데이트가 활성화된 경우 확장이 자동으로 업데이트되지 않음을 의미합니다.
고정된 확장 버전 동기화
설정 동기화는 이제 고정된 확장 버전을 동기화합니다. 이는 한 컴퓨터에서 특정 버전의 확장을 설치하면 동기화하는 다른 모든 컴퓨터에서도 해당 버전으로 고정됨을 의미합니다.
확장 프로그램 기여
Python
활성화된 터미널에서 VS Code를 시작할 때 환경 자동 선택
사용자가 conda 또는 가상 환경이 이미 활성화된 터미널을 통해 VS Code를 시작하는 경우, Python 확장은 이를 감지하고 환경 자체를 자동 선택하거나, 환경에 따라 해당 환경을 선택된 환경으로 만들지 여부를 사용자에게 묻습니다.
환경 생성 시 요구 사항 파일 선택
**Python: 환경 만들기** 명령을 사용하여 가상 환경을 만들 때, Python 확장은 이제 작업 영역 폴더에서 요구 사항 파일을 찾아 사용자가 설치할 요구 사항을 여러 개 선택할 수 있도록 합니다.
pyproject.toml에서 선택적 종속성 선택
Python 확장은 pyproject.toml 파일의 [project.optional-dependencies] 부분에서 제공하는 선택적 종속성을 감지하고 로드합니다. 작업 영역에 pyproject.toml과 선택된 선택적 종속성이 있는 경우 pip 편집 설치 명령을 사용합니다.
Pylance의 자동 들여쓰기
Python 파일에 대해 editor.formatOnType 설정이 활성화된 경우, Pylance는 코드를 입력하면서 자동으로 들여쓰므로 코드 로직에 더 집중하고 서식 지정에 덜 신경 쓸 수 있습니다.
사용해 보려면 사용자 settings.json 파일에 다음을 추가하여 Python 파일에 대해 formatOnType을 활성화하십시오.
"[python]": {
"editor.formatOnType": true,
},
라이브 미리보기
외부 브라우저 미리보기를 위한 설정
이제 라이브 미리보기 확장을 통해 기본 브라우저 이외의 브라우저에서 외부 브라우저 미리보기를 열 수 있습니다. livePreview.customExternalBrowser 설정을 사용하여 외부 미리보기를 다음에서 열도록 설정할 수 있습니다.
- Microsoft Edge
- Google Chrome
- Mozilla Firefox
- 기본 브라우저

서버 루트 설정
이제 서버의 루트 경로를 작업 영역의 하위 폴더로 설정할 수 있습니다. 예를 들어, livePreview.serverRoot를 "src"로 설정하여 Live Preview가 작업 영역의 src 폴더에서 파일을 제공하도록 할 수 있습니다.
ESLint
ESLint 확장이 버전 2.4.0으로 업데이트되었습니다. 주요 새로운 기능은 다음과 같습니다.
-
새로운 실험적인 플랫 구성 파일에 대한 지원. VS Code에서
eslint.experimental.useFlatConfig설정을 사용하여 이 지원을 별도로 활성화해야 합니다. ESLint 버전 8.21 이상이 필요합니다. -
ESLint 상태 표시기가 VS Code의 언어 상태 영역으로 이동했습니다. 이로 인해
eslint.alwaysShowStatus설정이 제거되었습니다. 대신 VS Code의 고정 기능을 사용하십시오.
언어 상태 항목은 이제 저장 시 코드 수정을 계산하는 동안 느린 유효성 검사 시간 및 긴 ESLint 실행에 대해 알려줍니다. 사용 가능한 시간 예산(밀리초)은
eslint.timeBudget.onValidation및eslint.timeBudget.onFixes두 가지 설정을 통해 제어할 수 있습니다. -
긴 문제 밑줄을 새로운 설정
eslint.problems.shortenToSingleLine을 사용하여 단일 줄로 단축할 수 있습니다.
GitHub Pull Requests 및 Issues
작업, 생성 및 관리할 수 있는 GitHub 끌어오기 요청 및 문제 확장에 대한 추가 작업이 이루어졌습니다. 주요 내용은 다음과 같습니다.
- 변경 사항 제안 및 수락 지원.
- 주석의 GitHub 핸들이 이제 링크로 표시됩니다.
- PR 생성 시 레이블을 추가할 수 있습니다.
- 실험적인 설정
githubPullRequests.experimental.quickDiff는 체크아웃된 PR의 변경된 줄에 대해 에디터 여백에 빠른 diff 보기를 표시합니다.
확장 프로그램 0.58.0 릴리스의 변경 로그에서 다른 주요 내용을 확인하세요.
GitHub Copilot
GitHub Copilot 확장은 AI 기반 코드 완성 도구로, 더 빠르고 스마트하게 코드를 작성하는 데 도움을 줍니다. VS Code에서 Copilot 확장을 사용하여 코드를 생성하거나 생성된 코드를 학습할 수 있습니다.
GitHub Copilot은 인라인 제안 UI를 통해 VS Code 에디터에 통합되어 다양한 제안을 검토하고 생성된 코드의 전체 또는 일부를 쉽게 수락할 수 있습니다.
GitHub Copilot은 이제 기업을 위해 일반적으로 사용할 수 있으며, 라이선스 관리, 조직 전체 정책 제어, 개인 정보 보호 기능 등을 제공합니다. 자세한 내용은 GitHub Copilot for Business 공지에서 확인할 수 있습니다.
시작하려면 GitHub Copilot 웹사이트에서 무료 체험판을 신청할 수 있습니다.
또한 VS Code 설명서에 새로운 VS Code의 GitHub Copilot 토픽을 추가하여 Copilot 시작에 도움을 드릴 것입니다.
원격 개발
원격 개발 확장 프로그램을 사용하면 컨테이너, 원격 머신 또는 Linux용 Windows 하위 시스템(WSL)을 완전 기능 개발 환경으로 사용할 수 있습니다. 이번 릴리스의 주요 내용은 다음과 같습니다.
- 여러
devcontainers.json파일에 대한 Dev Container 지원. - Docker 자격 증명 전달.
- X11 및 Wayland 전달
원격 개발 릴리스 노트에서 새로운 확장 기능과 버그 수정에 대해 알아보세요: 원격 개발 릴리스 노트.
원격 터널
절전 모드 방지
원격 터널은 이제 Windows, macOS 및 systemd 기반 Linux 시스템에서 컴퓨터가 절전 모드로 전환되는 것을 방지할 수 있습니다. 데스크톱을 떠나 원격으로 작업하고 터널에 계속 액세스할 수 있도록 하려면 이 기능이 유용합니다. 이 기능을 사용하려면
- VS Code UI에서 원격 터널 액세스를 켜면
remote.tunnels.access.preventSleep설정을true로 업데이트하십시오. - CLI에서
code tunnel을 사용할 때--no-sleep플래그를 전달하십시오.
안정성 개선
원격 터널의 연결 관련 문제가 여러 가지 해결되어 안정성이 향상될 것입니다.
계속 작업하기
계속 작업하기 기능은 로컬 창에서 Git 리포지토리로 시작하여 GitHub Codespace와 같은 원격 창에서 계속 작업하는 것을 지원합니다. 아직 원격으로 푸시되지 않은 브랜치에 있는 경우, 다른 개발 환경에서 계속 작업하도록 선택하면 현재 브랜치를 푸시하라는 메시지가 자동으로 표시되어 다른 곳에서도 전체 브랜치 컨텍스트에 액세스할 수 있습니다.
또한, 원격 창에서 Git 리포지토리를 사용할 때, 새 로컬 복제본에서 계속 작업 명령을 사용하여 VS Code 데스크톱에서 새 로컬 Git 복제본에서 계속 작업할 수 있습니다.
마지막으로, 로컬, 원격 또는 웹 창에서 작업을 계속하는 모든 옵션이 이제 원격 표시기에 편리하게 표시됩니다. 이러한 옵션은 명령 팔레트에서도 사용할 수 있습니다.

미리 보기 기능
Dark+ V2 및 Light+ V2 실험 테마
두 가지 새로운 색 테마인 Dark+ V2와 Light+ V2를 이제 사용할 수 있습니다. 이 테마들은 기존 Dark+ 및 Light+ 테마의 진화 버전으로, 더 나은 접근성을 제공하고 VS Code를 이전보다 더 멋지게 보이도록 설계되었습니다! 이 테마들은 여전히 실험적인 것으로 표시되어 있으며, 초기 피드백을 기다리고 있습니다.

색 테마 선택기(기본 설정: 색 테마 ⌘K ⌘T (Windows, Linux Ctrl+K Ctrl+T))에서 Light+ V2 (Experimental) 및 Dark+ V2 (Experimental)로 표시되는 새 테마를 찾을 수 있습니다.
TypeScript 5.0 지원
이 업데이트에는 예정된 TypeScript 5.0 릴리스에 대한 지원이 포함됩니다. TypeScript 팀이 현재 작업 중인 내용에 대한 자세한 내용은 TypeScript 5.0 반복 계획을 참조하십시오. 몇 가지 편집기 도구 주요 내용:
- 새로운
switch및case자동 완성을 통해switch문의 두 섹션을 더 빠르게 채울 수 있습니다. - github.dev 및 vscode.dev에서 프로젝트 전체 IntelliSense 활성화 작업.
TypeScript 5.0 야간 빌드를 사용하려면 TypeScript Nightly 확장을 설치하십시오.
명령 팔레트의 "자주 사용되는" 섹션
이번 마일스톤에서는 명령 팔레트에 새로운 "자주 사용되는" 섹션을 추가했습니다. 이 섹션의 목표는 신규 사용자가 명령 팔레트의 용도와 기능을 더 잘 이해하도록 돕는 것입니다.

테마: Panda Theme (vscode.dev에서 미리 보기)
이 섹션은 "최근 사용" 섹션 아래에 표시되어 습관을 방해하지 않으며, 더 많은 명령을 실행하고 VS Code에 익숙해짐에 따라 "자주 사용되는" 명령이 "최근 사용"으로 이동하여 섹션이 사라지거나 섹션이 화면 하단으로 이동하여 보이지 않게 됩니다.

테마: Panda Theme (vscode.dev에서 미리 보기)
현재 이 새로운 환경은 workbench.commandPalette.experimental.suggestCommands 설정을 통해 사용할 수 있지만, 가까운 미래에 기본 동작으로 만들 계획입니다. 의견을 들려주세요!
확장 프로그램 작성
주석 스레드 상태
CommentThread state API가 최종 확정되었습니다. 이 API는 주석이 해결됨 또는 해결되지 않음으로 렌더링되는지 여부를 제어하며 주석 보기의 필터링에 영향을 줄 수 있습니다. API 사용 방법에 대한 자세한 내용은 이슈 #127473에서 확인할 수 있습니다.
동기화 설정 무시
설정을 등록할 때 ignoreSync 속성을 사용하여 기본적으로 설정 동기화에서 설정을 숨길 수 있습니다. 이는 머신 간에 동기화되지 않도록 하는 설정에 유용합니다.
원격 분석
새로운 TelemetryLogger API가 최종 확정되었습니다. 이 API는 확장 작성자가 원격 측정을 더 쉽게 사용하고 최종 사용자가 더 안전하게 사용할 수 있도록 하는 것을 목표로 합니다. 이 API를 사용하면 기본 비밀 정보 정리, 원격 측정 출력 채널, 오류 처리기 및 자동 원격 측정 수준 관리와 같은 기능을 사용할 수 있습니다. 이를 통해 요구 사항을 충족하는 보다 통합된 원격 측정 환경을 제공할 것입니다.
제안된 API
모든 마일스톤에는 새로운 제안 API가 제공되며 확장 저자는 이를 시험해 볼 수 있습니다. 항상 그렇듯이 피드백을 원합니다. 제안 API를 시험해 보는 단계는 다음과 같습니다.
- 시험하고 싶은 제안을 찾아
package.json#enabledApiProposals에 해당 이름을 추가하세요. - 최신 vscode-dts를 사용하고
vscode-dts dev를 실행하세요. 그러면 해당d.ts파일이 작업 영역으로 다운로드됩니다. - 이제 제안에 대한 프로그래밍을 할 수 있습니다.
제안 API를 사용하는 확장은 게시할 수 없습니다. 다음 릴리스에서 호환성이 깨지는 변경 사항이 있을 수 있으며, 기존 확장을 깨뜨리는 일은 절대 없을 것입니다.
노트북 렌더러가 다른 MIME 타입으로 대체되도록 허용
콘텐츠를 렌더링할 때, 노트북 렌더러가 항목을 제대로 렌더링할 수 없음을 인식할 수 있습니다. 예를 들어, 렌더러가 커널이 특정 상태에 있어야 하는 경우입니다.
이전에는 이러한 경우 렌더러의 유일한 옵션은 오류 메시지를 렌더링하는 것이었습니다. 우리는 렌더러가 VS Code가 노트북 출력 항목에 저장된 다른 데이터를 조용히 대체하도록 하는 특별히 명명된 오류를 발생시키는 새로운 제안 API를 추가했습니다. 예를 들어, 대화형 차트 렌더러는 이 오류를 발생시켜 VS Code가 대체되어 현재 출력 항목에 저장된 이미지 데이터도 렌더링하도록 할 수 있습니다.
이 대체 기능을 트리거하려면 renderOutputItem에서 vscode.fallbackToNextRenderer라는 오류를 발생시키십시오.
throw new class extends Error {
override name = 'vscode.fallbackToNextRenderer';
}();
이 특수 오류는 특정 상황에서 렌더링이 실패할 것으로 예상되는 경우에만 사용됩니다. 렌더러에 예상치 못한 오류가 발생하면 계속 오류 메시지를 표시해야 합니다.
빠른 diff
편집기에서 추가, 변경, 삭제된 줄에 표시되는 여백 장식인 빠른 diff는 현재 SCM 공급자만 사용할 수 있습니다. 제안된 빠른 diff API는 SCM 공급자 외부에서 빠른 diff를 사용할 수 있도록 합니다. 다음 예시는 PR에서 변경된 줄에 대한 빠른 diff를 표시하기 위해 빠른 diff API를 사용하는 GitHub Pull Request 확장입니다.
vscode.window.registerQuickDiffProvider(
{ scheme: 'file' },
{
provideOriginalResource: (uri: vscode.Uri) => {
const changeNode = this.reviewModel.localFileChanges.find(
changeNode => changeNode.changeModel.filePath.toString() === uri.toString()
);
if (changeNode) {
return changeNode.changeModel.parentFilePath;
}
}
},
'GitHub Pull Request',
this.repository.rootUri
);
전체 제안은 quickDiffProvider.d.ts에 있습니다.
연속 테스트 실행
연속 테스트 실행을 통해 테스트 확장은 변경 사항 발생 시 테스트를 감시하고 다시 실행할 수 있음을 나타낼 수 있습니다. 이 API를 지원하는 것은 테스트 실행 프로필에서 지원을 나타내는 문제입니다...
const profile = controller.createRunProfile('Run', TestRunProfileKind.Run, runHandler);
+profile.supportsContinuousRun = true;
그런 다음 runHandler에서 해당 내용을 확인합니다.
const runHandler = (request: TestRunRequest, token: CancellationToken) => {
+ if (request.continuous) {
+ return watchForFileChangesThenRunTests(request, token);
+ }
}
전체 제안은 testContinuousRun.d.ts에 있습니다.
엔지니어링
확장 호스트를 위한 유틸리티 프로세스
프로세스 샌드박싱에 필요한 확장 호스트를 위한 유틸리티 프로세스 사용이 이제 기본적으로 활성화되었습니다. 여전히 곧 제거될 설정(extensions.experimental.useUtilityProcess)이 있습니다.
명령줄을 통한 성능 테스트
명령줄에서 성능 테스트 세트를 실행하기 위해 다음 노드 모듈을 도입했습니다.
vscode-bisect - 이 모듈은 성능 회귀를 빠르게 측정하는 데 도움이 됩니다. 이 도구를 작동하는 방법에 대한 자세한 내용은 npx vscode-bisect --help를 실행하십시오.
vscode-perf - 이 모듈은 VS Code의 성능을 측정하는 데 도움이 됩니다. npx vscode-perf --help는 이 도구를 작동하는 방법에 대해 설명합니다.
GB18030 인증
VS Code는 이제 GB18030 인증을 받았습니다. 이는 중국 정부 내 인증 위원회에서 VS Code가 중국어 문자의 전체 범위를 올바르게 표현할 수 있음을 확인했음을 의미합니다. 테스트는 모든 내장 사용 시나리오를 포함했습니다. VS Code가 인증됨에 따라 Visual Studio 제품군(Visual Studio 및 Visual Studio for Mac 포함)의 핵심이 GB18030 인증을 받았습니다.
ESM으로 마이그레이션
코드베이스를 ESM으로 마이그레이션하는 여정을 시작했습니다. VS Code 프로젝트는 네이티브 모듈(ESM) 이전에 만들어졌으며 현재 비동기 모듈 시스템(AMD)을 사용하고 있습니다. AMD는 유용했지만 이제는 전환할 때입니다. 코드베이스를 ESM으로 마이그레이션하기 시작했으며, 좋은 진전을 보이고 있으며 다음 몇 달 안에 이 작업을 완료할 것으로 예상합니다.
macOS 10.11 및 10.12에 대한 EOL 경고
VS Code 데스크톱은 다음 몇 가지 마일스톤에서 Electron 22로 업데이트될 예정입니다. Electron 22 업데이트와 함께 VS Code 데스크톱은 더 이상 OS X El Capitan 및 macOS Sierra에서 실행되지 않습니다. 이번 마일스톤에서는 이러한 영향을 받는 플랫폼의 사용자에게 마이그레이션을 준비하기 위한 사용 중단 알림을 추가했습니다. 위에 언급된 OS 버전을 사용하는 경우, 자세한 정보는 FAQ를 참조하십시오: FAQ.
시스템 및 애플리케이션 언어 변수 사용 개선
이전 릴리스에서는 애플리케이션 언어를 Electron으로 전달하여 창 컨트롤 오버레이(WCO)와 같은 일부 구성 요소를 올바르게 레이아웃할 수 있도록 했습니다. 한편, 언어 추천기는 시스템 언어에 의존했지만 app.getLocale()은 시스템 언어 대신 애플리케이션 언어를 가져오기 시작하여, 언어 추천기에 사용할 시스템 언어를 검색하기 위해 더 새로운 app.getPreferredSystemLanguages() Electron API를 사용했습니다. 결과적으로, 새 API가 toLocaleString()이 구문 분석할 수 없는 일부 값을 반환했기 때문에 확장 보기에서 확장이 렌더링되지 않는 회귀가 발생했습니다.
복구 릴리스를 위해 푸시한 즉각적인 해결책은 app.getLocale()로 되돌리고 언어 추천을 일시적으로 중단하는 것이었지만, 코드베이스의 많은 영역에서 시스템 언어 변수 대신 애플리케이션 언어 변수를 사용해야 한다는 것을 알게 되었습니다.
이번 릴리스에서는 시스템 언어 대신 애플리케이션 언어를 사용하는 경우가 많습니다. 차례로, 날짜는 이제 시스템 언어보다 애플리케이션 언어와 더 일관된 형식으로 지역화될 것입니다.
주요 수정 사항
- 99878 environmentVariableCollection으로 PATH env var 앞에 추가하면 macOS에서 작동하지 않습니다.
- 153786 diff 편집기의 양쪽을 열기 위한 명령이 있습니다.
- 165123 두 개의 제목 없는 측면으로 diff 편집기를 열 수 있습니다.
- 167004 출력: 출력 채널 표시 출력 채널을 표시하는 명령
- 167528 확장 출력 채널의 로그 수준이 창을 다시 로드한 후에도 유지됩니다.
감사합니다
마지막으로, VS Code 기여자에 대한 진심 어린 감사의 말씀을 전합니다.
이슈 추적
이슈 추적에 대한 기여
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @ArturoDent (ArturoDent)
- @yume-chan (Simon Chan)
풀 리퀘스트
vscode 기여
- @a-stewart (Anthony Stewart): browser.ts의 matchMedia 호출과 일관되게 창 지정 PR #164020
- @Aaaaash (大表哥):
standaloneTheme.defines항상 false 반환 수정. PR #169221 - @andschwa (Andy Jordan): PowerShell 5.1 셸 통합 수정 PR #170516
- @antonioprudenzano (Antonio Prudenzano): Feat/155294 PR #168513
- @babakks (Babak K. Shandiz)
- 마크다운 구문 토큰에 물결표(~) 포함 PR #146417
- 🖊 커밋 버튼 팝업에 브랜치 이름 포함 PR #167827
- 선택 없이 감시 추가 PR #171449
- @Balastrong (Leonardo Montini): 145458 목록: 페이지별 스크롤 지원 PR #145788
- @chiefmikey (Mikl Wolfe)
- repository.ts 기본 매개변수 유형 제거 PR #155908
- git config.followTagsWhenSync 정의 업데이트 PR #155914
- @chouzz (Chouzz): 호출 계층 구조 및 유형 계층 구조 API의 잘못된 설명 수정 PR #167718
- @d1y (源来氏佐田): feat: 화면 녹화 모드 이동 스케일 PR #156084
- @davidwengier (David Wengier): Razor 리포지토리 업데이트 PR #171560
- @dtivel (Damon Tivel)
- 확장: 서명 확인 중 UnknownError 시 실패하지 않고 경고 PR #169777
- 확장 서명을 확인할 수 없으면 차단하지 않음 PR #172576
- @fadeevab (Alexander Fadeev):
else ifeq|ifneq|...구문에 대한 Makefile 테스트 PR #170888 - @giannisp (Ioannis Poulakas): 검색 입력 레이아웃 개선 PR #165989
- @gjsjohnmurray (John Murray)
- 새 목록/트리 검색/필터 위젯에 기록 추가 (#_155578) PR #159188
- 트리 찾기 위젯에 '퍼지 일치' 토글 추가 (#_116286) PR #164376
- 해결되지 않은 트리 분기 숨김 방지 PR #167047
- @gpoussel (Guillaume Poussel): 원격 태그 삭제 명령 추가 (이슈 #104845 수정) PR #134327
- @HKalbasi: 인라인 힌트 위치 링크 문제 수정 PR #167886
- @hughlilly (Hugh Lilly): 교정: “Double-clicking” -> “Double-clicking” PR #166758
- @jakebailey (Jake Bailey): TS 사용자 기본 설정에 disableLineTextInReferences=true 설정 PR #171376
- @jasonwilliams (Jason Williams): diff 편집기의 양쪽을 편집기로 열 수 있도록 허용 (이슈 #153786 수정) PR #165765
- @jeanp413 (Jean Pierre)
- 빠른 개요에 붙여넣기가 결과를 표시하지 않는 문제 수정 PR #166835
- 편집기 영역 터미널이 종료 후 복원되지 않는 문제 수정 PR #168887
- 종료 시 확인 및 종료 시 확인 설정을 무시하고 다시 로드한 후 복원되는 터미널/작업 수정 PR #168922
- createTerminal이 첫 번째 편집기 그룹에 터미널을 생성하지 않는 문제 수정 PR #169050
- @joshuaobrien: git stash staged only 명령 추가 PR #165649
- @laurentlb (Laurent Le Brun): 명령 시간: 원격 측정에 더 높은 정밀도 사용 PR #167624
- @maIIady (Ilya Golovin): 수정: git 명령이 키보드로 작동하도록 함 PR #159113
- @markw65: 다른 폴더의 동일한 이름의 작업이 자동으로 시작되지 않는 문제 수정 PR #168742
- @MarkZuber (Mark Zuber): 네트워크 프로토콜에 높은 지연 시간 측정 계측 추가 PR #168668
- @meskill: 수정: nushell 통합 PR #169861
- @mkhl (Martin Kühl):
XDG_DATA_DIRS를 통해 fish 통합 구성 노출 PR #168211 - @MonadChains (MonadChains)
- 이슈 163528/편집 중단점 생성 명령 PR #163734
- 최소 한 번 디버그가 시작되면 중단점 보기 활성화 PR #169077
- @mroch (Marshall Roch): anyScore firstMatchCanBeWeak 수정 PR #168266
- @mueheg (Google Henrik): 입력란의 전체 내용을 선택하기 전에 선택하지 않음, #167266 수정. PR #167274
- @N1kO23:
${rootNameShort}형식 추가 PR #165744 - @ohah (ohah): 화면 녹화 IME 버그 수정 (#_165248) PR #165249
- @ookami-kb (Kirill Bubochkin): cwd 통신 시 오류를 수정하기 위해 shellIntegration.fish 업데이트 PR #168452
- @PEZ (Peter Strömberg): 상태 표시줄 항목에 고정폭 숫자 사용 PR #167310
- @pokey (Pokey Rule): 스니펫 선택 탈출 버그 수정 PR #169287
- @probablykasper (Kasper):
terminal.integrated.tabStopWidth옵션 추가 PR #170733 - @pzhlkj6612 (Mozi): 터미널 탭: 이름 변경 중 끌기 및 클릭 비활성화 PR #166821
- @r3m0t (Tomer Chachamu): 웹뷰가 확장 시작이 느릴 때 사라지는 문제 수정 (#_168516) PR #168569
- @rezasoumi (RezCoder): 이슈 163803/ 먼저 ref를 선택한 다음 create-branch-from...에서 이름을 선택합니다. PR #170908
- @rwe (Robert Estelle): shellIntegration-bash.sh: DEBUG 트랩 표현식을 정확히 보존 PR #165581
- @samdenty (Sam Denty): IExtensionRecommendationReson 오타 수정 PR #163889
- @Sean1708 (Sean Marshallsay): VSCODE_RESOLVING_ENVIRONMENT env 변수 도입. PR #168436
- @ssigwart (Stephen Sigwart)
- 그룹 추가 및 제거 또는 사이드바 토글 시 최대화된 그룹 크기 유지 PR #137962
- 붙여넣기가 들여쓰기를 제거하는 문제 수정 PR #167687
- CamelCase 변환 추가 PR #169512
- @ste42 (Steven Tam): 새 제목 없는 diff 명령 추가 PR #168533
- @sumneko (最萌小汐): Lua-grammar 업데이트 PR #167692
- @weartist (Han)
- diff 보기에서 "다음 변경" 루프를 비활성화하는 설정 수정 #163331 PR #164225
- 어댑터 css #165169 PR #167030
- 프로세스 탐색기가 위치와 크기를 기억하도록 지원 PR #169090
- 동일한 이름의 스니펫이 나타날 때 스니펫 소스 추가 PR #169119
- applicationStorageMainService를 stateMainService로 교체 PR #169365
- @yiliang114 (易良): 수정: 오타 PR #158431
- @zardoy (Vitaly): [typescript] 멤버 완성에서 잠재적인
[object Object]수정 PR #171127
vscode-css-languageservice에 대한 기여
- @romainmenke (Romain Menke): 새 CSS 단위 PR #324
vscode-hexeditor에 기여
- @brabli (Bradley): 데이터 검사기에 현재 바이트의 8진수 표현 추가 PR #410
vscode-json-languageservice 기여
- @rahulbanerjee26 (Rahul Banerjee): "not" 규칙의
errorMessage속성에 대한 스키마 확인 PR #164
vscode-languageserver-node에 기여
- @wkillerud (William Killerud): onPrepareRename에 defaultBehavior 응답 추가 PR #1161
vscode-pull-request-github 기여
- @eamodio (Eric Amodio): TypeScript(4.2 릴리스) 및 Octokit(수정된 유형 가져오기) 및 몇 가지 사소한 다른 업데이트 PR #2525
- @sravan1946 (sravan): README에서 사용할 수 없는 배지 제거 PR #4393
- @Thomas1664
debug-adapter-protocol에 기여
- @mfussenegger (Mathias Fußenegger): 프레임의 absent canRestart가 true임을 의미함을 명확히 함 PR #365
monaco-editor 기여
- @jonatanklosko (Jonatan Kłosko): Elixir 토크나이저 업데이트 PR #3453
- @rcjsuen (Remy Suen): 색상 공급자의 열 수정 PR #3348