2024년 4월 (버전 1.89)
업데이트 1.89.1: 이 업데이트는 다음 이슈들을 해결합니다.
다운로드: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code의 2024년 4월 릴리스에 오신 것을 환영합니다. 이번 버전에는 여러분이 좋아하실 만한 많은 업데이트가 포함되어 있으며, 주요 내용은 다음과 같습니다.
- Markdown 이미지 및 동영상 미리 보기 (호버 시) - Markdown의 이미지 및 동영상 링크 위로 마우스를 가져가면 미리 볼 수 있습니다.
- 향상된 브랜치 전환 - 브랜치를 전환할 때 열려 있던 편집기를 끊김 없이 복원합니다.
- 가운데 클릭 붙여넣기 지원 - 마우스 가운데 버튼 클릭으로 터미널에 텍스트를 빠르게 붙여넣을 수 있습니다.
- WSL over Remote - SSH - Remote - SSH를 통해 원격 컴퓨터에 연결되어 있을 때 WSL을 사용할 수 있습니다.
- 접근성 보기 - 접근성 보기에서 주석, 채팅 코드 블록 및 터미널 명령을 탐색할 수 있습니다.
- UI 작업에 대한 키 바인딩 - 오른쪽 클릭으로 UI 작업에 대한 키 바인딩을 직접 사용자 지정할 수 있습니다.
- 빠른 검색 - 빠른 검색을 사용하여 작업 영역 전체에서 텍스트를 검색합니다.
- AI 기반 이름 바꾸기 제안 - Copilot을 사용하여 편집기에서 지능적인 이름 바꾸기 제안을 받습니다.
- Copilot 콘텐츠 제외 - Copilot 컨텍스트에서 사용될 파일을 제외합니다.
- 로컬 작업 영역 확장 - 확장 프로그램을 작업 영역에 직접 포함하고 설치합니다.
온라인에서 릴리스 노트를 읽으려면 code.visualstudio.com의 업데이트로 이동하세요. Insiders: 새로운 기능을 가능한 한 빨리 사용해 보고 싶으신가요? 야간 빌드인 Insiders를 다운로드하여 최신 업데이트를 사용할 수 있을 때 즉시 사용해 볼 수 있습니다.
접근성
진행률 접근성 신호
accessibility.signals.progress 설정은 화면 읽기 프로그램 사용자가 사용자 인터페이스에 진행률 표시줄이 표시되는 모든 곳에서 진행률을 들을 수 있도록 합니다. 신호는 3초 후에 재생되며, 진행률 표시줄이 완료될 때까지 5초마다 반복됩니다. 신호가 재생될 수 있는 예로는 작업 영역 검색 중, 채팅 응답 대기 중, 노트북 셀 실행 중 등이 있습니다.
개선된 편집기 접근성 신호
이제 줄에 오류 또는 경고가 있거나 커서가 오류 또는 경고에 있을 때 별도의 접근성 신호가 제공됩니다.
편집기에서 줄과 열을 이동할 때 접근성 신호의 지연 시간을 별도로 사용자 지정할 수 있습니다. 또한 ARIA 알림 신호는 오디오 큐 신호보다 재생 전에 더 긴 지연 시간을 가집니다.
인라인 제안이 더 이상 제안 컨트롤이 표시되는 동안 접근성 신호를 트리거하지 않습니다.
접근 가능한 보기
접근성 보기(⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2))를 통해 화면 읽기 프로그램 사용자가 워크벤치 기능을 검사할 수 있습니다.
터미널 개선 사항
이제 터미널 접근성 보기에서 다음(⌥↓ (Windows, Linux Alt+Down)) 또는 이전(⌥↑ (Windows, Linux Alt+Up)) 명령으로 이동할 때 현재 명령이 실패했는지 들을 수 있습니다. 이 기능은 accessibility.signals.terminalCommandFailed 설정으로 전환할 수 있습니다.
쉘 통합이 활성화된 터미널에서 이 보기가 열리면 VS Code는 향상된 환경을 위해 터미널 명령줄로 알립니다.
채팅 코드 블록 탐색
채팅 응답에 대한 접근성 보기에서 이제 다음(⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown)) 및 이전(⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp)) 코드 블록 간을 탐색할 수 있습니다.
주석 보기
주석을 제공하는 확장이 설치되어 있고 주석 보기에 포커스가 있을 때, 접근성 보기 내에서 보기의 주석을 검사하고 탐색할 수 있습니다. 주석에 사용 가능한 확장 제공 작업도 접근성 보기에서 실행할 수 있습니다.
워크벤치
언어 모델 사용량 보고
언어 모델을 사용하는 확장의 경우, 이제 확장 편집기 및 런타임 확장 편집기에서 언어 모델 사용량을 추적할 수 있습니다. 예를 들어, 다음 스크린샷에서 Copilot Chat 확장에 대해 보여주듯이 언어 모델 요청 수를 볼 수 있습니다.

로컬 작업 영역 확장
VS Code 1.88 릴리스에서 처음 소개된 로컬 작업 영역 확장이 이제 정식 출시되었습니다. 이제 확장 프로그램을 작업 영역에 직접 포함하고 해당 작업 영역에만 설치할 수 있습니다. 이 기능은 특정 작업 영역의 요구 사항을 충족하고 보다 맞춤화된 개발 경험을 제공하도록 설계되었습니다.
이 기능을 사용하려면 작업 영역 내의 .vscode/extensions 폴더에 확장 프로그램이 있어야 합니다. 그러면 VS Code가 이 확장 프로그램을 확장 보기의 작업 영역 추천 섹션에 표시하며, 여기서 사용자가 설치할 수 있습니다. VS Code는 이 확장 프로그램을 해당 작업 영역에만 설치합니다. 로컬 작업 영역 확장은 사용자가 이 확장 프로그램을 설치하고 실행하기 전에 작업 영역에 대한 신뢰를 표시해야 합니다.
예를 들어, VS Code 리포지토리의 vscode-selfhost-test-provider 확장을 살펴보겠습니다. 이 확장은 테스트 기능을 플러그인하여 기여자가 작업 영역 내에서 직접 테스트를 보고 실행할 수 있도록 합니다. 다음 스크린샷은 확장 보기의 작업 영역 추천 섹션에 있는 vscode-selfhost-test-provider 확장 프로그램과 설치 기능을 보여줍니다.

압축되지 않은 확장 프로그램을 VSIX 파일이 아닌 .vscode/extensions 폴더에 포함해야 합니다. 확장 프로그램의 소스만 포함하여 작업 영역 설정의 일부로 빌드할 수도 있습니다.
빠른 열기에서 사용자 지정 편집기 레이블
지난달에 편집기 탭의 레이블을 사용자 지정할 수 있는 사용자 지정 레이블 기능을 도입했습니다. 이 기능은 index.tsx 파일과 같이 이름이 같은 파일의 탭을 더 쉽게 구분할 수 있도록 도와줍니다.
이를 바탕으로 사용자 지정 레이블의 사용을 빠른 열기(⌘P (Windows, Linux Ctrl+P))로 확장했습니다. 이제 생성한 사용자 지정 레이블을 사용하여 파일을 검색할 수 있어 파일 탐색이 더 직관적입니다.

키 바인딩 사용자 지정
사용자 인터페이스 작업에 대한 키 바인딩을 사용자 지정하는 것이 더 쉬워졌습니다. 워크벤치의 작업 항목을 마우스 오른쪽 버튼으로 클릭하고 키 바인딩 사용자 지정을 선택합니다. 작업에 when 절이 있으면 자동으로 포함되어 키 바인딩을 원하는 대로 더 쉽게 설정할 수 있습니다.
트리에서 찾기 키 바인딩
트리 컨트롤에 대해 찾기 컨트롤이 의도치 않게 자주 열리는 문제가 해결되었습니다. 예를 들어, 편집기에서 검색하는 대신 탐색기 보기에서 찾기 컨트롤이 나타나는 경우입니다.
이러한 의도치 않은 활성화를 줄이기 위해 트리 컨트롤에서 찾기 컨트롤을 여는 기본 키 바인딩을 ⌥⌘F (Windows, Linux Ctrl+Alt+F)로 변경했습니다. 이전 설정을 선호하는 경우 키보드 단축키 편집기를 사용하여 list.find 명령에 대한 원래 키 바인딩으로 쉽게 되돌릴 수 있습니다.
시스템 색상 모드 자동 감지 개선
테마가 시스템의 색상 모드를 따르도록 하려면 window.autoDetectColorScheme 설정을 활성화하여 이를 수행할 수 있었습니다.
활성화되면 현재 테마는 다크 모드일 때 workbench.preferredDarkColorTheme 설정으로, 라이트 모드일 때 workbench.preferredLightColorTheme 설정으로 정의됩니다.
이 경우 workbench.colorTheme 설정은 더 이상 고려되지 않습니다. window.autoDetectColorScheme이 꺼져 있을 때만 사용됩니다.
이번 마일스톤에서는 테마 선택 대화 상자(기본 설정: 색상 테마 명령)가 시스템 색상 모드를 인식하게 되었습니다. 시스템이 다크 모드일 때 테마 선택이 다크 테마만 표시되는 것을 확인하세요.

이 대화 상자에는 window.autoDetectColorScheme 설정으로 직접 이동할 수 있는 새 버튼도 있습니다.

주석에 Markdown 링크 붙여넣기
주석 컨트롤의 입력 편집기에서 링크를 붙여넣는 것은 Markdown 파일에서 링크를 붙여넣는 것과 동일한 동작을 합니다. 붙여넣기 옵션이 표시되며 복사한 원시 링크 대신 Markdown 링크를 붙여넣는 옵션을 선택할 수 있습니다.

소스 제어
브랜치 전환 시 열린 편집기 저장/복원
이번 마일스톤에서는 소스 제어 브랜치를 전환할 때 편집기를 저장하고 복원하는 오랫동안 요청되어 온 기능 요청을 해결했습니다. 이 기능을 활성화하려면 scm.workingSets.enabled 설정을 사용하십시오.
처음으로 브랜치로 전환할 때 열린 편집기를 제어하려면 scm.workingSets.default 설정을 사용할 수 있습니다. 열린 편집기 없음(empty)을 선택하거나 현재 열려 있는 편집기(current, 기본값)를 사용하도록 선택할 수 있습니다.
변경 사항을 볼 수 있는 전용 명령
여러 파일 diff 편집기에서 특정 유형의 변경 사항을 더 쉽게 볼 수 있도록 명령 팔레트에 새로운 명령 세트인 Git: 스테이징된 변경 보기, Git: 변경 보기, Git: 추적되지 않은 변경 보기를 추가했습니다.
노트북
최소 오류 렌더러
notebook.output.minimalErrorRendering:true 설정을 사용하여 노트북 오류 렌더러에 대한 새 레이아웃을 사용할 수 있습니다. 이 새 레이아웃은 오류와 메시지만 표시하고 전체 오류 스택을 확장하기 위한 컨트롤을 표시합니다.
대형 노트북에 대한 백업 비활성화
대형 노트북 파일의 주기적인 파일 백업이 이제 디스크에 파일을 쓰는 데 걸리는 시간을 줄이기 위해 비활성화됩니다. 제한은 notebook.backup.sizeLimit 설정으로 조정할 수 있습니다. 또한 노트북 파일을 저장하는 동안 렌더러를 차단하지 않는 옵션을 실험 중이며(notebook.experimental.remoteSave), 자동 저장이 성능 저하 없이 발생하도록 합니다.
개요/고정 스크롤 성능 회귀 수정
지난 몇 달 동안 노트북 편집기의 성능 회귀에 대한 피드백을 받았습니다. 회귀는 파악하기 어렵고 쉽게 재현되지 않습니다. 지속적으로 로그와 피드백을 제공해 주신 커뮤니티 덕분에 새로운 기능을 추가하면서 개요 및 고정 스크롤 기능에서 회귀가 발생하는 것을 식별할 수 있었습니다. 이 릴리스에서 해당 문제가 수정되었습니다.
커뮤니티의 피드백과 인내심에 감사드리며, 노트북 편집기의 성능을 계속 개선하고 있습니다. 계속해서 성능 문제가 발생하는 경우 VS Code 리포지토리에 새로운 이슈를 제출하는 것을 망설이지 마십시오.
검색
빠른 검색
빠른 검색을 통해 작업 영역 파일 전체에서 텍스트 검색을 빠르게 수행할 수 있습니다. 빠른 검색은 더 이상 실험적이지 않으므로, 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))에서 검색: 빠른 검색 명령을 사용하여 사용해 보세요! ✨🔍
테마: Night Owl Light (vscode.dev에서 미리 보기: vscode.dev)
이제 모든 빠른 검색 명령 및 설정에 더 이상 "experimental"이라는 키워드가 포함되지 않습니다. 예를 들어, 명령 ID workbench.action.experimental.quickTextSearch가 workbench.action.quickTextSearch로 변경되었습니다. 이러한 이전 ID를 사용하는 설정이나 키 바인딩이 있는 경우 관련이 있을 수 있습니다.
검색 트리 재귀 확장
검색 트리에서 선택한 트리 노드를 재귀적으로 열 수 있는 새로운 상황별 메뉴 옵션이 있습니다.
테마: Night Owl Light (vscode.dev에서 미리 보기: vscode.dev)
터미널
Git Bash 쉘 통합 기본 활성화
Git Bash에 대한 쉘 통합이 이제 자동으로 활성화됩니다. 이를 통해 명령 탐색, 고정 스크롤, 빠른 수정 등 Git Bash의 다양한 기능을 사용할 수 있습니다.
가운데 클릭 붙여넣기 구성
대부분의 Linux 배포판에서는 가운데 클릭으로 선택 영역을 붙여넣습니다. 이제 다른 운영 체제에서도 terminal.integrated.middleClickBehavior를 paste로 구성하여 비슷한 동작을 활성화할 수 있으며, 이는 가운데 클릭 시 일반 클립보드 내용을 붙여넣습니다.
ANSI 하이퍼링크 지원 확장
이전에는 OSC 8 이스케이프 시퀀스를 통해 생성된 ANSI 하이퍼링크가 http 및 https 프로토콜만 지원했지만, 이제는 모든 프로토콜에서 작동합니다. 기본적으로 보안상의 이유로 file, http, https, mailto, vscode 및 vscode-insiders 프로토콜만 활성화되지만, terminal.integrated.allowedLinkSchemes 설정을 통해 더 많은 프로토콜을 추가할 수 있습니다.
터미널용 새 아이콘 선택기
터미널 탭 상황별 메뉴에서 아이콘 변경을 선택하면 프로필용으로 빌드된 새 아이콘 선택기가 열립니다.
![]()
테마: Sapphire (vscode.dev에서 미리 보기)
창 크기 보고 지원
터미널은 이제 다음 이스케이프 시퀀스 요청에 응답합니다.
CSI 14 t- 터미널 창 크기(픽셀 단위) 보고CSI 16 t- 터미널 셀 크기(픽셀 단위) 보고CSI 18 t- 터미널 창 크기(문자 단위) 보고
⚠️ 캔버스 렌더러 사용 중단
터미널은 DOM 렌더러, WebGL 렌더러, 캔버스 렌더러의 세 가지 다른 렌더러를 제공합니다. 캔버스 렌더러를 제거하고 싶었지만 DOM 렌더러의 허용할 수 없는 성능과 WebKit의 webgl2 미구현으로 인해 차단되었습니다. 이 두 가지 문제 모두 이제 해결되었습니다!
이번 릴리스에서는 캔버스 렌더러가 대체 체인에서 제거되어 terminal.integrated.gpuAcceleration 설정이 명시적으로 "canvas"로 설정된 경우에만 활성화됩니다. 다음 릴리스에서는 캔버스 렌더러를 완전히 제거할 계획입니다. terminal.integrated.gpuAcceleration이 "on" 또는 "off"로 설정된 경우 문제가 발생하면 알려주시기 바랍니다.
디버그
JavaScript 디버거
JavaScript 디버거는 이제 runtimeExecutable 구성의 node_modules/.bin 폴더에 나타나는 바이너리를 자동으로 찾습니다. 이제 이름으로 자동으로 해결합니다.
다음 예에서 전체 경로를 지정하지 않고 mocha만 참조할 수 있음을 알 수 있습니다.
{
"name": "Run Tests",
"type": "node",
"request": "launch",
- "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/mocha",
- "windows": {
- "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/mocha.cmd"
- },
+ "runtimeExecutable": "mocha",
}
언어
Markdown 경로 완성에서 이미지 미리 보기
VS Code의 내장 Markdown 도구는 Markdown의 링크 및 이미지에 대한 경로 완성 기능을 제공합니다. 이미지 또는 동영상 파일에 대한 경로를 완성할 때, 이제 완성 세부 정보에 작은 미리 보기를 직접 표시합니다. 이를 통해 원하는 이미지 또는 동영상을 더 쉽게 찾을 수 있습니다.

Markdown에서 이미지 및 동영상 미리 보기 (호버 시)
전체 Markdown 미리 보기를 열지 않고도 Markdown에서 이미지 또는 동영상의 빠른 미리 보기를 원하십니까? 이제 이미지 또는 동영상 경로 위로 마우스를 가져가면 작은 미리 보기를 볼 수 있습니다.

개선된 Markdown 헤더 이름 바꾸기
VS Code의 내장 Markdown 지원 기능을 사용하면 F2 키로 헤더 이름을 바꿀 수 있다는 것을 알고 계셨나요? 이는 해당 헤더에 대한 모든 링크를 자동으로 업데이트하기 때문에 유용합니다.
Markdown 파일
# Readme
- [Example 1](#_example)
- [Example 2](#_example-1)
## Example
...
## Example
...
## Example 헤더 두 개는 텍스트가 같지만 고유 ID(#example 및 #example-1)를 사용하여 개별적으로 링크할 수 있습니다. 이전에는 첫 번째 ## Example 헤더의 이름을 ## First Example으로 바꾸면 #example 링크는 올바르게 #first-example으로 변경되었지만 #example-1 링크는 변경되지 않았습니다. 그러나 ## Example 헤더가 복제되지 않으므로 #example-1은 더 이상 유효한 링크가 아닙니다.
이제 이 시나리오를 올바르게 처리합니다. 예를 들어 위 문서에서 첫 번째 ## Example 헤더의 이름을 ## First Example으로 바꾸면 새 문서에는 다음과 같이 표시됩니다.
# Readme
- [Example 1](#_first-example)
- [Example 2](#_example)
## First Example
...
## Example
...
두 링크 모두 자동으로 업데이트되어 유효하게 유지됩니다!
원격 개발
원격 개발 확장 프로그램을 사용하면 개발 컨테이너, SSH 또는 원격 터널을 통해 원격 머신 또는 Windows Subsystem for Linux(WSL)를 완전한 기능을 갖춘 개발 환경으로 사용할 수 있습니다.
주요 내용은 다음과 같습니다.
- SSH를 통한 WSL 연결
원격 개발 릴리스 노트에서 이러한 기능에 대해 자세히 알아볼 수 있습니다.
확장 프로그램 기여
GitHub Copilot
터미널 인라인 채팅
터미널 인라인 채팅이 이제 터미널에서 기본 환경으로 제공됩니다. 터미널에 포커스가 있을 때 Ctrl+I (Windows/Linux) 또는 Cmd+I (macOS) 키보드 단축키를 사용하여 호출합니다.

터미널 인라인 채팅은 통합 터미널의 쉘 및 내용에 대한 컨텍스트를 가진 @terminal 채팅 참여자를 사용합니다.

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

Copilot 기반 이름 바꾸기 제안 버튼
Copilot 기반 이름 바꾸기 제안은 이제 이름 바꾸기 컨트롤의 반짝이는 아이콘을 사용하여 트리거할 수 있습니다.
콘텐츠 제외
GitHub Copilot 콘텐츠 제외가 이제 모든 Copilot for Business 및 Copilot Enterprise 고객을 위해 Copilot Chat에서 지원됩니다. 콘텐츠 제외 구성에 대한 정보는 GitHub Docs에서 찾을 수 있습니다.
파일이 콘텐츠 제외로 제외되면 Copilot Chat은 파일의 내용이나 경로를 볼 수 없으며 LLM 제안 생성에 사용되지 않습니다.


미리 보기: 노트북 편집기에서 생성
이제 노트북 편집기에서 노트북 셀에 인라인 채팅을 자동으로 활성화하여 삽입하는 것을 지원합니다. notebook.experimental.generate 설정을 true로 설정하면 노트북 도구 모음 및 셀 간 삽입 도구 모음에 생성 버튼이 표시됩니다. 노트북 목록 또는 셀 컨테이너에 포커스가 있을 때 Cmd+I (macOS) 또는 Ctrl+I (Windows/Linux)를 눌러 트리거할 수도 있습니다. 이 기능은 언어 모델의 도움을 받아 새 셀에서 코드를 생성하는 프로세스를 간소화하는 데 도움이 됩니다.
Python
"상속된 모든 추상 클래스 구현" 코드 액션
Pylance를 사용할 때 추상 클래스와 함께 작업하는 것이 더 쉬워졌습니다. 추상 클래스를 상속하는 새 클래스를 정의할 때 이제 상속된 모든 추상 클래스 구현 코드 액션을 사용하여 부모 클래스의 모든 추상 메서드 및 속성을 자동으로 구현할 수 있습니다.
테마: Catppuccin Macchiato (vscode.dev에서 미리 보기: vscode.dev)
새로운 자동 들여쓰기 설정
이전에는 Pylance의 자동 들여쓰기 동작이 editor.formatOnType 설정을 통해 제어되었지만, 자동 들여쓰기를 비활성화하고 다른 지원 도구로 형식 지정(format on type)을 활성화하려는 경우 문제가 될 수 있었습니다. 이 문제를 해결하기 위해 Pylance는 자체 설정인 python.analysis.autoIndent를 통해 자동 들여쓰기 동작을 제어하며, 이 설정은 기본적으로 활성화되어 있습니다.

Python 확장에서 Pylance 디버거 제거 (Python 디버거 확장 프로그램 지원)
디버깅 기능이 이제 Python Debugger 확장에서 처리되므로 Python 확장 프로그램에서 debugpy를 제거했습니다.
이 변경에 따라 launch.json 파일에 지정된 "type": "python" 및 "type": "debugpy"는 모두 Python Debugger 확장 프로그램의 경로를 참조하게 되므로, 실행 및 디버깅을 효과적으로 수행하기 위해 launch.json 파일에 대한 변경이 필요하지 않습니다. 앞으로는 Python Debugger 확장 프로그램에 직접 해당하므로 "type": "debugpy"를 사용하는 것이 좋습니다.
테스트 중 소켓 비활성화 가능
Python 테스트 재작성에서 테스트 UI에서 소켓 비활성화를 사용하여 테스트를 실행할 수 있습니다. 이는 Python 확장 프로그램과 테스트 실행 하위 프로세스 간의 통신을 명명된 파이프를 사용하도록 전환하여 가능해졌습니다.
사소한 테스트 버그 업데이트
테스트 보기에는 이제 unittest 및 매개변수화된 테스트를 중첩 클래스 내에서 올바르게 사용하는 testscenarios 프로젝트가 표시됩니다. 또한 테스트 탐색기는 심볼릭 링크가 있는 작업 영역의 테스트를 처리합니다. 특히 WSL 시나리오에 유용한 심볼릭 링크 경로의 하위 항목인 작업 영역 루트가 있습니다.
Pylance 성능 개선
Pylance 팀은 지난 몇 번의 릴리스에서 Pylance 성능이 저하되었다는 피드백을 받아왔습니다. 다양한 보고된 문제를 해결하기 위해 메모리 소비 및 인덱싱 성능에 대한 몇 가지 작은 개선이 이루어졌습니다. 그러나 Pylance에서 여전히 성능 문제가 발생하는 경우, 커맨드 팔레트의 Pylance: 이슈 보고 명령을 통해 이슈를 제출해 주시기를 요청하며, 로그, 코드 샘플 및/또는 작업 환경에 설치된 패키지를 포함하는 것이 이상적입니다.
Hex 편집기
Hex 편집기에는 기존의 "replace" 모드 외에도 이제 *insert* 모드가 있습니다. insert 모드를 사용하면 파일 내 및 파일 끝에 새 바이트를 추가할 수 있으며, Insert 키 또는 상태 표시줄에서 전환할 수 있습니다.
Hex 편집기는 현재 호버 중인 바이트를 상태 표시줄에 표시합니다.
GitHub 풀 요청
풀 요청 및 이슈를 작업하고, 생성하고, 관리할 수 있는 GitHub Pull Requests 확장 프로그램에 더 많은 진전이 있었습니다. 새로운 기능은 다음과 같습니다.
- 체크 아웃되지 않은 PR에 대한 실험적 충돌 해결은 숨겨진 설정
"githubPullRequests.experimentalUpdateBranchWithGitHub": true를 통해 활성화할 수 있습니다. 이 기능은 로컬에서 브랜치를 체크 아웃하지 않고 PR에서 충돌을 해결할 수 있도록 합니다. 이 기능은 아직 실험적이며 모든 경우에 작동하지 않습니다. - 풀 리퀘스트 및 이슈 보기에서 접근성 도움말 열기를 트리거할 때 표시되는 접근성 도움말 대화 상자가 있습니다.
- 공간이 충분하면 활성 풀 리퀘스트 사이드바 보기에서 모든 검토 작업 버튼이 표시됩니다.
확장 프로그램의 0.88.0 릴리스에 대한 변경 로그를 검토하여 다른 주요 내용을 알아보세요.
TypeScript
VS Code 코어에서 처리하는 파일 감시
새로운 실험적 설정 typescript.tsserver.experimental.useVsCodeWatcher는 TS 확장이 파일 감시 요구 사항에 VS Code의 핵심 파일 감시 지원을 사용하는지 여부를 제어합니다. TS는 일반적으로 자체 Node.js 기반 구현으로 파일 감시를 광범위하게 사용합니다. VS Code의 파일 감시자를 사용하면 감시가 더 효율적이고 안정적이며 리소스 소모가 적어야 합니다. 5월에 이 기능을 사용자에게 점진적으로 활성화하고 회귀를 모니터링할 계획입니다.
미리보기 기능
PowerShell에 대한 VS Code 네이티브 인텔리센스
터미널 내 PowerShell 인텔리센스에 대한 프로토타입이 오랫동안 있었으며, 최근에 이를 다듬는 데 더 많은 시간을 투자할 수 있었습니다. 이것이 어떻게 보이는지 보여줍니다.
현재는 - 문자 또는 Ctrl+Space를 누르면 트리거됩니다. 이 기능을 활성화하려면 settings.json 파일에 "terminal.integrated.shellIntegration.suggestEnabled": true를 설정하십시오(현재 설정 UI에는 표시되지 않습니다).
이 기능은 아직 초기 단계이지만 피드백을 기다립니다. 계획 중인 더 큰 작업에는 트리거를 더 안정적으로 만들고(#211222), 팝업이 트리거되는 위치에 관계없이 제안을 더 일관성 있게 만들며(#211364), 편집기 인텔리센스 경험과 최대한 유사한 환경을 제공하는 것이 포함됩니다(#211076, #211194).
붙여넣기 시 Markdown 링크 자동 업데이트
Markdown 문서를 작성하고 있는데 한 섹션이 다른 곳에 있어야 한다고 깨닫는다고 가정해 보세요. 그래서 다른 파일로 복사하여 붙여넣습니다. 괜찮죠? 음, 복사된 텍스트에 상대 경로 링크, 참조 링크 또는 이미지가 포함되어 있으면 대부분 깨질 것이므로 수동으로 수정해야 합니다. 이는 정말 고통스러울 수 있지만 다행히 새로운 붙여넣기 링크 업데이트 기능이 도움이 될 것입니다!
이 기능을 활성화하려면 "markdown.experimental.updateLinksOnPaste": true를 설정하기만 하면 됩니다. 활성화되면 현재 편집기에서 Markdown 파일 간에 텍스트를 복사하여 붙여넣을 때 VS Code가 자동으로 모든 상대 경로 링크, 참조 링크 및 상대 경로가 있는 모든 이미지/동영상을 수정합니다.
붙여넣은 후, 대신 복사한 정확한 텍스트를 삽입하고 싶다면 붙여넣기 컨트롤을 사용하여 일반 복사/붙여넣기 동작으로 전환할 수 있습니다.
TypeScript 5.5 지원
이제 TypeScript 5.5 베타를 지원합니다. 자세한 내용은 TypeScript 5.5 베타 블로그 게시물 및 반복 계획을 확인하십시오.
편집기 주요 변경 사항:
- 정규 표현식에 대한 구문 검사.
- 파일 감시 개선.
TypeScript 5.5 베타를 사용하려면 TypeScript Nightly 확장을 설치하십시오. 피드백을 공유하고 TypeScript 5.5에서 버그가 발생하는 경우 알려주십시오.
API
주석 입력 편집기에서 언어 기능에 대한 지원 개선
새로운 주석을 작성할 때 VS Code는 메인 편집기와 마찬가지로 TextDocument를 기반으로 하는 축소된 텍스트 편집기를 만듭니다. 이번 반복에서는 이러한 주석 텍스트 편집기에 몇 가지 추가 API 기능이 활성화되었습니다. 여기에는 다음이 포함됩니다.
- 작업 영역 편집 지원.
- 진단 지원.
- 붙여넣기 제안 API 지원.
주석 텍스트 문서는 comment 스키마를 가진 URI로 식별할 수 있습니다.
이 새로운 기능으로 확장 프로그램이 구축할 것을 기대합니다!
창 활동 API 최종 확정
창 활동 API가 최종 확정되었습니다. 이 API는 창이 최근에 상호 작용했는지 여부를 확장 프로그램이 결정하는 데 사용할 수 있는 간단한 추가 WindowState.active 불리언을 제공합니다.
vscode.window.onDidChangeWindowState(e => console.log('Is the user active?', e.active));
제안된 API
보기의 접근성 도움말 대화 상자
accessibilityHelpContent 속성을 통해 확장 프로그램이 제공하는 모든 보기에 접근성 도움말 대화 상자를 추가할 수 있습니다. 보기에서 포커스가 있을 때 화면 읽기 프로그램 사용자는 대화 상자를 열라는 힌트(⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1))를 듣게 되며, 여기에는 개요와 유용한 명령이 포함됩니다.
이 API는 GitHub Pull Request 확장 프로그램의 이슈 및 PR 보기에 사용됩니다.
언어 모델 및 채팅 API
언어 모델 네임스페이스(vscode.lm)는 언어 모델 정보를 검색하고 주어진 문자열의 토큰 수를 계산하는 새로운 함수를 내보냅니다. 각각 getLanguageModelInformation 및 computeTokenLength입니다. 언어 모델의 제한 내에서 프롬프트를 구축하려면 이러한 함수를 사용해야 합니다.
참고: 인라인 채팅은 이제 곧 출시될 채팅 참여자 API로 구동됩니다. 이는
registerInteractiveEditorSessionProvider가 더 이상 사용되지 않으며 곧 제거될 것임을 의미합니다.
문서 붙여넣기 제안 업데이트
document paste proposed API에 대한 반복을 계속했습니다. 이 API는 확장 프로그램이 텍스트 문서의 복사/붙여넣기 작업에 연결할 수 있도록 합니다.
API의 주목할 만한 변경 사항:
-
새로운
resolveDocumentPasteEdit메서드는 붙여넣기 작업 시 편집 내용을 채웁니다. 편집 내용 계산에 시간이 오래 걸리는 경우, 붙여넣기 편집이 실제로 적용되어야 할 때만 호출되므로 이 메서드를 사용해야 합니다. -
모든 붙여넣기 작업은 이제
DocumentDropOrPasteEditKind로 식별됩니다. 이는 기존CodeActionKind와 유사하게 작동하며, 붙여넣기 작업에 대한 키 바인딩 및 설정에 사용됩니다.
문서 붙여넣기 확장 샘플에는 최신 API 변경 사항이 모두 포함되어 있어 API를 테스트해볼 수 있습니다. 변경 사항 및 전체 API 디자인에 대한 피드백을 공유해주세요.
호버 상세 수준
이번 반복에서는 호버를 축소/확장하기 위한 새로운 제안 API인 editorHoverVerbosityLevel이 추가되었습니다. 이 API는 VerboseHover라는 새로운 타입을 도입하며, canIncreaseHoverVerbosity와 canDecreaseHoverVerbosity 두 개의 불리언 필드를 포함하여 호버 상세 수준을 높이거나 낮출 수 있음을 나타냅니다. 둘 중 하나가 true로 설정되면 호버는 + 및 - 아이콘과 함께 표시되며, 이를 사용하여 호버 상세 수준을 높이거나 낮출 수 있습니다.
제안된 API는 HoverContext 타입의 추가 매개변수를 받는 provideHover 메서드의 새로운 시그니처도 도입합니다. 사용자가 호버 상세 수준 요청을 보내면, 이전 호버와 함께 상세 수준을 높이거나 낮추려는 사용자의 의도를 나타내는 HoverVerbosityAction이 포함된 호버 컨텍스트가 채워집니다.
확장 프로그램에서 트리거된 테스트 실행 시 preserveFocus
확장 프로그램에서 트리거된 테스트 실행 요청에 preserveFocus 불리언에 대한 제안이 있습니다. 이전에는 확장 프로그램 API에서 트리거된 테스트 실행이 테스트 결과 보기로 포커스를 이동시키는 경우가 없었기 때문에 일부 확장 프로그램은 사용자 경험 호환성을 유지하기 위해 재구현해야 했습니다. 이 새로운 옵션은 TestRunRequest에서 설정하여, 인에디터에서 실행이 트리거된 것처럼 포커스를 이동하도록 에디터에 요청할 수 있습니다.
주요 수정 사항
- 209917 보조 창: 최대화 상태 복원 (Linux, Windows)
감사합니다
마지막으로, VS Code 기여자에 대한 진심 어린 감사의 말씀을 전합니다.
이슈 추적
이슈 추적에 대한 기여
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @starball5 (starball)
- @ArturoDent (ArturoDent)
풀 리퀘스트
vscode 기여
- @4-tel: fix: "!"로 시작하는 디버그 콘솔의 줄 검색 #174146 PR #210178
- @CareyJWilliams (Carey Williams): 비어 있는 tasks.json에 대한 작업 템플릿 쓰기 수정 PR #210675
- @cpendery (Chapman Pendery)
- fix: 번들링 오류로 인해 터미널 제안 실패 PR #208822
- feat: 셸 통합에 git-bash 지원 추가 PR #208960
- fix: Windows에서 터미널 마커 배치 개선 PR #209136
- fix: 완료 항목이 없을 때 터미널 제안 모달 숨김 PR #210289
- fix: git bash에서 분할 실패 PR #210513
- @Ditoo29 (Diogo Pinto): fix: 줄바꿈 문자 직렬화 PR #209703
- @frankli0324 (Frank): npm view 실행 시 corepack 자동 고정 기능 비활성화 PR #210601
- @g-plane (Pig Fang): 모든 파일이 스테이징되거나 커밋되면 Git 다중 diff 편집기 자동 닫기 PR #210327
- @gjsjohnmurray (John Murray)
workbench.activityBar.iconClickBehavior및workbench.activityBar.location설정에 대한 설명 개선 PR #210574- Activity Bar 아이콘 배지 올바르게 지우기 (fix #210640) PR #210645
- @grgar (George Garside)
- 웹에서 window.customTitleBarVisibility 설정 사용 안 함 PR #209162
- 색상 선택기 명령 제목 수정 PR #210349
- 명령 프롬프트 끝으로 cmd 시작 이스케이프 이동 PR #210443
- @hsfzxjy (Xie Jingyi): 디버깅을 위한 탐색 가능한 컨테이너 이벤트 로깅 PR #209357
- @jswillard (John Willard): 빠른 열기에서 사용자 지정 레이블 표시 PR #209681
- @marvinthepa (Martin Sander): 터미널에서 마우스 가운데 버튼 붙여넣기 PR #136633
- @mmastrac (Matt Mastracci):
ESC [18t가 작동하도록 xtermTerminal에windowOptions추가 PR #209310 - @nopeless (nopeless): fix: 셸 통합 bash 파일에서
cmd를 로컬로 만들기 PR #208364 - @pagict (Premium): feat. 검색 보기에서 하위 트리 확장을 위한 'expand-select' 메뉴 항목 추가 PR #206033
- @pisv (Vladimir Piskarev):
OpenJsDocLinkCommand_Args의 잘못된 타이핑 수정 PR #209872 - @qirong77: Monaco-Editor의 인라인 제안 도구에서 클래스 누락으로 CSS 변수가 비효과적인 문제 수정 PR #207582
- @r-sargento (Rafael Sargento): #201247 수정 (통합 터미널에서 기본 프로필의 환경 변수 설정 안 함) PR #209711
- @ScriptBloom (alviner): fix: 최초 로드 시 미니맵 섹션 헤더 불완전 표시: #209603 PR #209605
- @sheetalkamat (Sheetal Nandi): tsserver에 vscode watch 사용 PR #193848
- @telamon (Tony Ivanov): #114425 수정 설치 시 mime 오염 방지 PR #209510
- @timorthi (Timothy Ng): 줄 번호 표시 모드가 변경될 때 스티키 스크롤 다시 렌더링 PR #210815
- @WardenGnaw (Andrew Wang): selectAndStartDebugging 명령에 'noDebug' 추가 PR #209893
- @zWingz (zWing): fix: workbench.extensions.installExtension execCommand 시 예기치 않은 오류 PR #210135
- @ale-dg: 노트북 편집기 및 jupyter의 여러 성능 문제를 진단하는 데 도움이 되도록 지속적으로 피드백과 로그 제공
vscode-css-languageservice에 대한 기여
- @liaoyinglong (vigoss): 중첩된 @container 지원 PR #390
vscode-emmet-helper에 대한 기여
vscode-eslint 기여
- @hyoban (Stephen Zhou): fix:
eslint.probe의 기본 옵션에 json, jsonc 추가 PR #1830
vscode-hexeditor에 기여
vscode-json-languageservice 기여
- @michaeltlombardi (Mikey Lombardi (He/Him)): 파서가 minContains/maxContains에 errorMessage를 사용하도록 보장 PR #229
vscode-languageserver-node에 기여
- @werat (Andy Hippo): 존재하지 않는 기능을 등록 취소할 때 충돌 방지 PR #1460
vscode-python-debugger 기여
- @DavidArchibald (David Archibald): WSL에서 실행 시 프로세스에 디버거 첨부 수정 PR #267
vscode-vsce 기여
- @yutotnh (yutotnh): feat:
git worktree add에서 생성된 .git 무시 PR #943
language-server-protocol 기여
- @asukaminato0721 (Asuka Minato): 2개의 lsp 추가 PR #1918
- @MariaSolOs (Maria José Solano): 마크업 진단 메시지 명확화 추가 PR #1917
- @practicalli-johnny (Practicalli Johnny): servers: clojure-lsp 리포지토리 및 유지 관리자 업데이트 PR #1921
- @sz3lbi (szelbi): SAP CDS 서버 추가 PR #1924
- @unvalley (unvalley): docs: lsp 서버에 biome 추가 PR #1923
- @Wilfred (Wilfred Hughes): RequestCancelled doc 주석 오타 수정 PR #1922
monaco-editor 기여
- @timotheeguerin (Timothee Guerin): TypeSpec 언어 지원 추가 PR #4450