이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

2024년 3월 (버전 1.88)

업데이트 1.88.1: 이 업데이트는 다음 이슈들을 해결합니다.

다운로드: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


Visual Studio Code의 2024년 3월 릴리스에 오신 것을 환영합니다. 이번 버전에는 여러분이 좋아하시기를 바라는 많은 업데이트가 있으며, 주요 내용은 다음과 같습니다.

온라인에서 릴리스 노트를 읽으려면 code.visualstudio.com업데이트로 이동하세요. Insiders: 새로운 기능을 가능한 한 빨리 사용해 보고 싶으신가요? 야간 빌드인 Insiders를 다운로드하여 최신 업데이트를 사용할 수 있을 때 즉시 사용해 볼 수 있습니다.

접근성

음성 녹음 소리

음성 녹음을 위한 새로운 접근성 신호음이 추가되었습니다.

  • 음성 녹음 시작 - accessibility.signals.voiceRecordingStarted 설정을 사용하여 구성됩니다.
  • 음성 녹음 종료 - accessibility.signals.voiceRecordingStopped 설정을 사용하여 구성됩니다.

향상된 diff 편집기 접근성

화면 판독기를 사용하는 경우, diff 편집기가 활성 편집기가 될 때 이제 알림을 받습니다. 이 동작은 accessibility.verbosity.diffEditorActive 설정을 사용하여 비활성화할 수 있습니다.

또한 키보드 사용자를 위한 유용한 명령인 Diff Editor: Switch Side에 대한 정보가 접근성 도움말 대화 상자에 추가되었습니다.

접근성 신호가 이제 diff 편집기의 양쪽에서 작동합니다. 이전에는 수정된 쪽에서만 사용할 수 있었습니다.

액세스 가능한 보기 채팅 코드 블록 명령

액세스 가능한 보기에서 채팅 응답을 검사할 때 이제 채팅 보기에서 사용 가능한 코드 블록 명령 및 키 바인딩을 사용할 수 있습니다.

여기에는 Chat: Insert at Cursor, Chat: Insert into Terminal, Chat: Insert into New File이 포함됩니다.

노트북 셀 aria 레이블 업데이트

이제 노트북 셀의 aria 레이블이 셀이 현재 실행 중인지 또는 실행 대기 중인지 나타내도록 업데이트됩니다.

워크벤치

플로팅 창에서 사용자 지정 편집기 지원

편집기를 플로팅 창으로 여는 지원을 사용자 지정 편집기 및 일반적으로 webview API를 사용하는 모든 편집기로 확장했습니다. 여기에는 마크다운 미리 보기, 브라우저 미리 보기 및 당사의 hex 편집기와 같은 복잡한 사용자 지정 편집기가 포함됩니다.

참고: 기술적 제한으로 인해 webview 기반 편집기를 창 간에 이동하려면 해당 편집기 콘텐츠를 다시 로드해야 합니다. 그러면 이전에 누적된 상태를 복원하는 것은 편집기의 몫입니다. 일부 경우 편집기를 처음 열었을 때처럼 상태가 재설정될 수 있습니다.

열린 편집기에 대한 사용자 지정 레이블

이제 편집기 탭 및 열린 편집기 보기에 대한 표시 레이블을 사용자 지정할 수 있습니다. 이 기능은 이름이 같은 파일의 편집기를 구별하는 데 유용할 수 있습니다.

workbench.editor.customLabels.patterns 설정 아래에 항목을 추가하여 이러한 레이블을 선호도에 맞게 조정할 수 있습니다. 각 항목에는 파일 경로와 일치하는 glob 패턴과 편집기 탭의 새 이름을 정의하는 템플릿이 포함되어야 합니다. 이 사용자 지정은 파일의 경로가 지정된 패턴과 일치하는 경우에만 적용됩니다. 패턴이 일치하는지 여부는 상대 또는 절대 파일 경로 패턴으로 정의되었는지에 따라 달라집니다.

템플릿에는 ${filename}, ${extname}, ${dirname}, ${dirname(N)}와 같은 변수를 포함할 수 있으며, 이는 파일 경로의 값으로 동적으로 대체됩니다.

이러한 사용자 지정 레이블을 활성화하거나 비활성화하려면 workbench.editor.customLabels.enabled 설정을 사용합니다. 이를 통해 사용자 지정 패턴을 제거하지 않고도 언제든지 원래 편집기 이름으로 전환할 수 있습니다.

고정 스크롤

이제 View: Toggle Locked Scrolling Across Editors 명령을 사용하여 모든 열린 편집기 간에 스크롤을 동기화할 수 있습니다. 즉, 한 편집기에서 스크롤하면 다른 모든 편집기가 동일한 양으로 스크롤되어 모든 것이 정렬됩니다. 이 기능은 파일을 나란히 비교해야 하는 경우 유용할 수 있습니다.

고정 스크롤을 활성화 및 비활성화하는 데 더 많은 제어를 원하면 특정 키 바인딩을 누르고 있는 동안에만 스크롤 동기화를 활성화하도록 선택할 수 있습니다. workbench.action.holdLockedScrolling 명령에 대한 키보드 바로 가기를 설정하면 필요할 때 언제든지 편집기 간 스크롤을 일시적으로 고정할 수 있습니다.

하단에 활동 표시줄

이전에는 사이드바 상단으로 활동 표시줄을 이동하는 옵션을 소개했습니다. 이제 활동 표시줄을 하단으로 이동할 수도 있습니다. 이렇게 하려면 workbench.activityBar.location 설정을 bottom으로 변경합니다.

또한 상단에 배치된 활동 표시줄의 모양과 느낌을 개선하여 나머지 인터페이스와 잘 맞도록 했습니다.

Three screenshots, showing the different Activity Bar positions: on the left side, at the top, and at the bottom

검색 편집기 단일 클릭 동작

이제 search.searchEditor.singleClickBehaviour 설정을 구성하여 검색 편집기 항목을 단일 클릭할 때 발생하는 작업을 결정할 수 있습니다. 현재 이 설정은 "Peek Definition"만 지원합니다.

빠른 검색 개선 사항

고정 파일 경로

빠른 검색에서 파일 이름 구분 기호를 고정하여 검색 결과가 어떤 파일과 관련되어 있는지 더 명확하게 표시했습니다. 파일에 검색 용어가 여러 번 나타나는 경우 유용할 수 있습니다.

파일 경로 구분 기호 버튼

특정 파일의 파일 결과에 마우스를 올리거나 결과로 화살표를 내리면 버튼(예: 파일 열기)도 파일 경로 구분 기호에 나타납니다.

빠른 선택 구분 기호 탐색 키 바인딩

빠른 선택에서 구분 기호 간에 이동할 수 있으면 좋겠다는 피드백을 받았습니다. 이번 반복에서는 이를 수행하는 키 바인딩을 추가했습니다. Windows 및 Linux에서는 Alt+Up/Down을 사용할 수 있으며, macOS에서는 Cmd+Up/Down입니다. 이 예제 비디오에서는 활성 항목이 이동하는 것을 볼 수 있습니다.

  • 명령 팔레트의 최근 사용기타 명령 구분 기호
  • 빠른 검색의 파일 경로 구분 기호 간

빠른 선택 비활성화된 확인란 항목

이번 반복에서는 빠른 선택에 비활성화된 항목이 표시될 때 더 명확하게 표시했습니다. 이는 로그인한 모든 계정에 대해 액세스할 수 있는 "신뢰할 수 있는 확장 관리" 빠른 선택에서 찾을 수 있는 예입니다.

The Manage Trusted Extensions quick pick with some items disabled

확장 업데이트 개선 사항

확장 다시 시작

확장이 업데이트될 때 이제 창을 다시 로드할 필요 없이 확장을 다시 시작할 수 있습니다.

Restart extensions instead of reloading the window

참고: WSL 또는 SSH 또는 Dev Container와 같은 원격 서버에 연결된 경우 확장을 업데이트하려면 여전히 창을 다시 로드해야 합니다.

VS Code 업데이트와 함께 확장 업데이트

extensions.autoCheckUpdates확장 자동 업데이트가 활성화되어 있으면 VS Code는 이제 업데이트 가능한 새 버전의 VS Code와 호환되는 확장을 업데이트합니다. 새 버전의 확장 프로그램이 현재 버전의 VS Code와 호환되지 않으면, VS Code를 업데이트한 후에만 새 버전의 확장 프로그램이 활성화됩니다.

댓글 답글로 이동

댓글 보기의 댓글 스레드에 대한 컨텍스트 메뉴에 답글이 가능한 경우 "Reply" 작업이 포함됩니다. 이를 통해 답글 입력란으로 빠르게 이동하여 답글을 입력할 수 있습니다.

Comments view context menu with a Reply action

편집기

미니맵 섹션 헤더

이제 미니맵이 TypeScript의 //#region 또는 MARK:를 사용하는 주석과 같은 접기 마커로 정의된 섹션을 인식하고 렌더링합니다. 이를 통해 대용량 파일을 빠르게 스캔하고 이동할 수 있습니다.

Screenshot that shows folding marker regions defined in the editor in the minimap

리팩터링 미리 보기 키 바인딩

코드 액션과 같은 다른 컨텍스트에서 리팩터링 미리 보기와 일관성을 유지하기 위해 이름 바꾸기 기호 리팩터링(F2)에 대한 편집 미리 보기 키 바인딩을 업데이트했습니다. 이제 ⌘Enter (Windows, Linux Ctrl+Enter)(이전 Shift + Enter)를 사용하여 편집 내용을 미리 볼 수 있습니다.

코드 액션을 마우스로 가리킬 때 ⌘Enter (Windows, Linux Ctrl+Enter)를 사용하면 워크벤치의 리팩터링 미리 보기 패널도 열립니다.

Diff 편집기 스테이징/되돌리기 선택 버튼

이제 diff 편집기에 StageRevert 컨트롤에 대한 별도의 여백이 있습니다. 이러한 작업을 통해 변경된 코드 블록을 스테이징하거나 되돌릴 수 있습니다.

텍스트 선택을 통해 일부 변경 사항을 선택하면 이러한 버튼을 사용하여 선택한 변경 사항(선택 내의 모든 변경된 문자)을 스테이징하거나 되돌릴 수 있습니다.

Video that shows the gutter buttons in the diff editor to stage or revert changes

diffEditor.renderGutterMenufalse로 설정하여 diff 편집기 여백을 숨길 수 있습니다.

이름 제안 동작 변경

빠른 선택과 일치하도록 이름 제안 사용 흐름을 개선했습니다. 목록에서 이름 제안을 선택하면 입력 값이 이에 맞게 업데이트되어 제안을 더 수정할 수 있습니다.

Video of the Rename control that updates the input with the focused rename suggestion

소스 제어

들어오는 변경 사항 파일 장식

원격에서 변경 사항을 병합/리베이스할 때 잠재적인 충돌을 방지하기 위해 이제 들어오는 변경 사항이 있고 페치되었지만 아직 병합/리베이스되지 않은 모든 파일에 대해 파일 장식이 표시됩니다. 이 기능을 사용하려면 git.autofetchgit.decorations.enabled 설정을 모두 활성화해야 합니다.

Source Control incoming changes file decorators in the explorer view and in the editor tabs

테마: GitHub Sharp (vscode.dev에서 미리 보기: vscode.dev)

터미널

디버그 터미널의 셸 통합

사용자 및 확장에 대한 향상된 기능을 제공하기 위해 디버깅 중에 시작되는 터미널에서 이제 셸 통합이 자동으로 활성화됩니다.

최근 명령 실행 개선 사항

셸 통합 기반 최근 명령 실행(⌃⌥R (Windows, Linux Ctrl+Alt+R))은 가능한 경우 마지막 명령 실행 시간으로 스크롤하여 표시합니다. 명령을 실행하거나 빠른 선택을 취소하면 터미널이 이전 상태로 돌아갑니다.

테마: Sapphire (vscode.dev에서 미리 보기)

감지된 링크 열기 명령(⇧⌘O (Windows, Linux Ctrl+Shift+O))이 이제 편집기에서 링크 결과를 미리 보고 터미널에서 링크 소스를 강조 표시합니다.

또한 중복 링크는 이제 목록에서 필터링되며 모든 링크는 일관된 형식으로 제공됩니다.

When 3 yarn.lock links are printed with the same line and column numbers, they will all be merged into a single detected link

단어 링크terminal.integrated.wordSeparators 설정에 의해 정의되며 파일/폴더/URI를 찾을 수 없을 때 대체됩니다. 이러한 링크를 활성화하면 이제 검색이 발생하는 줄 번호와 열 정보에 대한 추가 주변 컨텍스트가 포함됩니다.

스크린샷에서 terminalLinkParsing 링크가 선택되었지만 결과 검색에는 링크 다음 줄 번호도 포함된다는 점에 유의하십시오.

Activating a "terminalLinkParsing" link when followed by "line 24" will include the 24 line number in the search

다음 링크 형식은 경로에 공백이 포함된 경우에도 이제 터미널에서 감지됩니다.

  •  FILE  path:line:column

터미널 고정 스크롤 투명도 지원

터미널의 고정 스크롤이 이제 투명도를 지원합니다. 테마는 terminalStickyScroll.background 테마 색상을 투명 값으로 구성하거나 settings.json에서 재정의를 지정하여 이를 사용할 수 있습니다. 예를 들어

{
  "workbench.colorCustomizations": {
    "[Default Dark Modern]": {
      "terminalStickyScroll.background": "#181818c0"
    }
  }
}

이는 투명한 고정 스크롤 배경을 생성하여 뒤의 텍스트가 비치도록 합니다.

The Sticky Scroll background can now be transparent, allowing the text behind to shine through

테스트

테스트 커버리지

이번 반복에서는 테스트 커버리지 API를 최종 확정하여 VS Code에 네이티브 커버리지 지원을 제공했습니다. 테스트 시스템이 이를 지원하는 경우 새로운 Run With Coverage 버튼을 사용하여 커버리지를 얻을 수 있습니다.

Screenshot showing the Run With Coverage button in the Test explorer view

마찬가지로 커버리지로 실행하기 위한 새로운 키 바인딩이 있으며, 예를 들어 Ctrl+; Ctrl+Shift+A는 모든 테스트를 커버리지로 실행하고 Ctrl+; Ctrl+Shift+L은 마지막 테스트 세트를 커버리지로 실행합니다.

커버리지 정보는 기본적으로 줄 번호 위에 오버레이로 표시되지만, 소스 파일에 대한 완전한 자세한 정보를 보려면 Toggle Inline Coverage를 선택할 수 있습니다.

Screenshot showing the Test Coverage view in the Test Explorer view and color overlays in the editor

테마: Codesong (vscode.dev에서 미리보기)

테스트 커버리지를 사용하려면 확장 프로그램이 새 API를 구현해야 합니다. Test Runner for Javanode:test runner와 같은 일부 확장 프로그램은 이미 이를 지원합니다. 팀의 12월1월 업데이트에서 Java용 테스트 커버리지에 대해 자세히 알아보세요.

확장 작성자는 테스팅 API 문서에서 테스트 커버리지 API에 대한 자세한 내용을 찾을 수 있습니다.

테스트 메시지의 색상 코드 지원

이제 터미널 색상 코드를 구문 분석하여 테스트 실패 시 표시되는 텍스트 기반 테스트 메시지를 원시 '인쇄할 수 없는' 데이터 코드를 표시하는 대신 색상으로 표시합니다.

언어

TypeScript 5.4

VS Code에 이제 TypeScript 5.4가 포함됩니다. 이 주요 업데이트에는 형식 검사 및 IntelliSense에 대한 새로운 개선 사항과 여러 버그 수정이 포함됩니다. 자세한 내용은 TypeScript 5.4 릴리스 블로그 게시물을 참조하세요.

Markdown 파일에 이미지나 파일을 드롭하거나 붙여넣으면 VS Code가 자동으로 Markdown 이미지 또는 링크 구문을 삽입합니다. 이제 코드 블록 및 Markdown 구문을 지원하지 않는 다른 컨텍스트에 삽입할 때 이 동작을 스마트하게 비활성화합니다.

드롭/붙여넣기 위젯을 사용하여 항상 Markdown 구문 삽입으로 되돌릴 수 있습니다. markdown.editor.drop.enabledmarkdown.editor.filePaste.enabled 설정을 사용하여 이 동작을 구성할 수 있습니다.

노트북

노트북 출력의 키보드 바로 가기

이제 노트북 출력에서 일부 표준 키보드 바로 가기를 지원합니다.

  • 출력은 키보드로 선택하고 각각 Ctrl+ACtrl+C 키 바인딩으로 복사할 수 있습니다.
  • 스크롤 가능한 출력은 키보드로 각각 UpDown 키 바인딩으로 스크롤할 수 있습니다.
  • 스크롤 가능한 출력의 맨 위와 맨 아래로 스크롤하는 것은 키보드로 각각 Ctrl+HomeCtrl+End 키 바인딩을 사용하여 달성할 수 있습니다(macOS에서는 Cmd+UpCmd+Down).
  • 현재 선택 지점에서 출력의 맨 위 또는 맨 아래까지 출력을 선택하는 것은 키보드로 각각 Ctrl+Shift+UpCtrl+Shift+End 키 바인딩을 사용하여 달성할 수 있습니다(macOS에서는 Shift+Cmd+UpShift+Cmd+Down).

셀 오류 진단

확장 프로그램은 실패한 셀에 대한 오류 세부 정보를 제공하여 셀 내에 오류 진단이 표시되도록 할 수 있습니다. 셀 컨테이너에 초점을 맞추면 notebook.cell.openFailureActions(⌘. (Windows, Linux Ctrl+.))가 해당 오류에 대한 빠른 작업 메뉴로 이동합니다. 언어 모델이 빠른 작업을 제공할 수 있을 때만 진단이 표시됩니다.

섹션에서 셀 실행

노트북에서 관련 셀을 더 쉽게 실행하려면 이제 마크다운 섹션 헤더로 그룹화된 셀을 Run Cells in Section 작업을 사용하여 실행할 수 있습니다. 이 작업은 노트북 개요 보기 및 고정 스크롤 요소에서 사용할 수 있습니다.

고정 스크롤 요소 내에서 원하는 헤더를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴의 작업을 통해 섹션을 실행합니다. 개요 보기 내에서 마우스를 올리거나 선택할 때 나타나는 도구 모음 아이콘을 선택한 다음 표시되는 작업을 통해 단일 셀 또는 셀 섹션을 실행합니다.

개요 보기의 필터 지원

이제 노트북 개요 보기에 필터가 있어 마크다운 헤더, 코드 셀 및 코드 셀 기호의 포함을 제어할 수 있습니다. 필터는 다음 설정에 해당합니다.

  • notebook.outline.showMarkdownHeadersOnly
  • notebook.outline.showCodeCells
  • notebook.outline.showCodeCellSymbols

닫을 때 대화형 창 저장 프롬프트

interactiveWindow.promptToSaveOnClose 설정을 활성화하면 대화형 창이 닫힐 때 해당 콘텐츠를 저장하라는 메시지가 표시되어 작업 내용을 잃지 않도록 합니다. 현재 지원되는 파일 형식은 .ipynb뿐입니다.

원격 개발

원격 개발 확장 프로그램을 사용하면 개발 컨테이너, SSH 또는 원격 터널을 통해 원격 머신 또는 Windows Subsystem for Linux(WSL)를 완전한 기능을 갖춘 개발 환경으로 사용할 수 있습니다.

주요 내용은 다음과 같습니다.

  • 확장 지원이 포함된 배포판에 대한 대체 서버 다운로드
  • URI 쿼리 문자열 기반 포트 전달
  • Dev Containers 확장이 자동으로 Docker 시작
  • 그룹 정책을 통한 Dev Tunnel 및 포트 전달 액세스 제한

이러한 기능에 대한 자세한 내용은 원격 개발 릴리스 노트에서 확인할 수 있습니다.

확장 프로그램 기여

VS Code 음성

지연 활성화

VS Code Speech 확장은 이제 VS Code에서 음성-텍스트 서비스가 요청될 때만 활성화됩니다. 이렇게 하면 확장이 확장 호스트 시작 시간에 부정적인 영향을 미치지 않습니다.

기본 음성 언어로 표시 언어 사용

기본적으로 VS Code 음성 확장은 이제 VS Code의 표시 언어를 음성 언어로 사용하고 해당 언어가 지원되는 경우 해당 모델을 선택합니다.

accessibility.voice.speechLanguage 설정에 대해 auto가 이제 기본값입니다.

GitHub Copilot

인라인 채팅 개선 사항

이제 인라인 채팅이 플로팅 컨트롤로 시작되어 더 가볍습니다. 첫 번째 요청 후 컨트롤이 확장되어 더 많은 공간을 차지합니다. 또한 채팅 보기 또는 빠른 채팅과 같은 다른 채팅 환경과 더 일관되도록 렌더링을 조정했습니다.

Inline Chat As Content Widget floating over the editor text 테마: GitHub Light Colorblind (Beta)

다시 실행 및 피드백 컨트롤을 재배치하고, 수락 및 취소 버튼 옆에 차이 보기를 위한 토글 컨트롤을 더 눈에 띄게 만들었습니다.

Screenshot of the Copilot Inline Chat, showing the repositioned controls. 테마: GitHub Light Colorblind (Beta)

컨텍스트로 노트북 커널 상태

노트북에 있을 때 커널 상태(예: 변수 및 사용 가능한 패키지)가 이제 인라인 채팅의 컨텍스트로 자동 포함됩니다. 이를 통해 Copilot은 노트북의 현재 상태를 사용하여 더 관련성 있는 완료를 제공할 수 있습니다.

테마: GitHub Dark

커밋 메시지 생성 개선 사항

생성된 커밋 메시지의 품질을 개선하기 위해 이제 리포지토리의 최근 10개 커밋의 커밋 메시지와 현재 사용자의 최근 10개 커밋의 커밋 메시지를 추가 컨텍스트로 포함합니다.

워크스페이스 생성 개선 사항

@workspace /new 명령은 이제 채팅 프롬프트에 대한 적절한 일치 항목이 감지될 때 제안으로 GitHub 리포지토리에서 큐레이션된 샘플 프로젝트를 제공합니다.

Chat view with @workspace /new that provides a link to a sample project

@workspace /new 명령은 컨텍스트 및 기록을 더 효과적으로 관리하도록 개선되었습니다. 이를 통해 후속 쿼리를 통해 제안된 워크스페이스 구조 및 파일 내용을 구체화할 수 있습니다. 예를 들어 "JavaScript 대신 TypeScript 사용" 또는 "Bootstrap도 추가"와 같은 것입니다.

@terminal /explain 슬래시 명령

명령 또는 오류를 설명하는 데 최적화된 새로운 @terminal /explain 슬래시 명령을 사용할 수 있습니다. /explain 없이 @terminal은 수정을 제안하도록 최적화되었습니다. 이 슬래시 명령은 Explain using Copilot 빠른 수정 또는 Explain selection 작업에서 사용됩니다.

Using the explain using copilot quick fix will ask copilot "@terminal /explain #terminalLastCommand"

미리 보기: 터미널 인라인 채팅

이번 릴리스에서는 터미널 인라인 채팅의 미리 보기를 사용할 수 있으며, 터미널에서 직접 Copilot의 기능에 편리하게 액세스할 수 있습니다.

terminal.integrated.experimentalInlineChat:true 설정을 사용하여 터미널 인라인 채팅을 활성화할 수 있습니다. 터미널에서 인라인 채팅을 호출하려면 ⌘I (Windows, Linux Ctrl+I) 키 바인딩을 사용합니다.

Opening terminal inline chat will open and focus an input box similar to inline chat in the editor

터미널 인라인 채팅은 통합 터미널의 셸 및 해당 콘텐츠에 대한 컨텍스트를 가진 @terminal 채팅 참가자를 사용합니다.

You can ask complex questions like "list the top 5 largest files in the src directory"

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

Complex queries are OS and shell-specific

인증 흐름에 대한 명확성

인증에 대한 명확성은 매우 중요합니다. 인증 방법과 요청하는 내용을 명확히 하고자 합니다. VS Code에서 비공개 리포지토리를 열고 이 시나리오에 대한 인증이 올바르지 않으면 인증 대화 상자가 표시됩니다. 이 대화 상자에는 인증이 필요한 이유에 대한 설명과 이러한 요구 사항에 대해 자세히 알아볼 수 있는 자세히 알아보기 버튼이 있습니다.

Screenshot of a modal window that's asking to authenticate with GitHub and that contains a Learn more button

자세히 알아보기 버튼을 클릭하면 인증 요구 사항에 대한 문서로 이동합니다.

변수 참조

채팅 응답의 Used references 섹션은 사용된 컨텍스트에 대한 정보를 제공합니다. 이전에는 이 섹션에서 암묵적으로 가져온 컨텍스트만 표시했습니다. 이제는 채팅 프롬프트에 명시적으로 언급한 변수(예: #file 또는 #editor)도 표시됩니다. 사용된 참조에서 변수가 누락된 경우 언어 모델의 컨텍스트 창에 너무 커서 무시되었음을 나타낼 수 있습니다.

Screenshot of a chat response, showing the '#file' variable in the Used references section

보조 채팅 제출 작업

채팅 보기에서 채팅 제출 버튼에 이제 더 많은 작업에 쉽게 액세스할 수 있는 드롭다운이 있습니다.

  • Send to @workspace는 워크스페이스 콘텐츠에 대한 질문에 유용한 @workspace 채팅 참가자에게 쿼리를 제출합니다.
  • Send to New Chat은 비어 있는 새 채팅을 시작한 다음 쿼리를 제출합니다.

Screenshot of the chat submit dropdown options

Copilot: Explain This 사용 시 범위 선택

활성 편집기에서 선택 없이 /explain을 사용하고 관심 있는 여러 범위가 있는 경우, 어떤 기호 또는 블록 범위를 설명할지 명확히 하기 위한 프롬프트 지원이 추가되었습니다.

Screenshot of the scope selection quick pick when the scope for /explain is unclear

이 동작은 현재 선택 사항이며 github.copilot.chat.scopeSelection 설정으로 제어됩니다.

Python

Flask 및 Django에 대한 디버그 구성 선택 개선

Flask 및 Django 앱에 대한 시작 구성 만들기가 더 쉬워졌습니다! 웹 앱에 대한 launch.json을 만들 때 워크스페이스에서 가능한 시작 파일을 감지하는 데 개선 사항이 이루어졌습니다.

Django의 경우 Python Debugger 확장은 워크스페이스의 루트 또는 한 단계 아래의 하위 디렉터리에서 manage.py 또는 app.py 파일을 찾습니다. Flask의 경우 확장은 Flask 애플리케이션 선언(예: app = Flask())을 포함하는 wsgi.py, app.py 또는 init.py 파일을 찾습니다.

프로젝트에서 이러한 파일을 찾을 수 없는 경우 드롭다운에 해당 프로젝트 유형에 대한 Default 옵션이 표시됩니다. 해당 파일이 없더라도 말입니다.

Hatch 환경 검색

Hatch 환경은 이제 Venv, Conda 및 Poetry와 같은 다른 일반적인 환경과 마찬가지로 기본적으로 검색 및 활성화됩니다. 또한 Hatch의 경우 명시적인 환경 식별자가 등록되지 않은 경우, 확장은 환경 로케이터에서 환경 유형(Hatch)을 결정할 수 있습니다.

pipenv, pyenv 및 Poetry 프로젝트에 대한 자동 환경 선택

워크스페이스에 pipenv, pyenv 또는 Poetry 환경이 포함된 경우, 해당 환경이 이제 워크스페이스에 대해 자동으로 선택됩니다. 이전에는 확장이 이러한 환경을 올바르게 검색했지만 기본 전역 인터프리터를 선택했으므로 워크스페이스에 대해 적절한 환경을 수동으로 선택해야 했습니다.

이제 Python 확장은 환경의 존재 및 해당 구성 파일에 따라 활성화된 환경을 추론합니다. 예를 들어 pyenv의 경우, 확장은 .python-version 파일을 확인하여 워크스페이스에 대한 적절한 인터프리터를 자동으로 선택합니다.

오래된 이슈 보고 명령 개선 사항

PythonPython Debugger 확장이 이제 여러분이 리포지토리에 문제를 보고하는 것을 더 쉽게 만듭니다! Report Issue 명령(workbench.action.openIssueReporter)으로 문제를 제기하면 대부분의 작업이 이미 완료되었으며, 팀이 문제점을 효율적으로 분류하기 위해 추가 정보만 요청받게 됩니다.

Help: Report Issue 명령을 사용하여 @vscode-python 또는 @vscode-python-debugger에 대한 문제를 제기하려면 확장 프로그램 드롭다운에서 각각 Python 또는 Python Debugger를 선택하십시오.

GitHub 풀 요청

풀 요청 및 이슈를 작업하고, 생성하고, 관리할 수 있는 GitHub Pull Requests 확장 프로그램에 더 많은 진전이 있었습니다. 새로운 기능은 다음과 같습니다.

  • 댓글 보기에서 오래된 댓글은 현재 댓글과 다르게 표시됩니다.
  • githubPullRequests.createDefaultBaseBranch에 대한 새로운 auto 값은 포크 리포지토리의 기본 브랜치로 업스트림의 기본 브랜치를 사용합니다.
  • 댓글 보기의 댓글 스레드에는 인라인 작업(해결/해결 안 함 및 오래된 댓글의 경우 "Diff Comment with HEAD") 및 컨텍스트 메뉴 작업이 있습니다.

확장 프로그램 0.86.0 릴리스의 변경 로그를 검토하여 다른 주요 내용을 알아보세요.

Jupyter

셀 실행 분석 개선 사항

최신 Pylance 미리 보기 릴리스를 통해 Jupyter 셀에 대한 종속성 분석이 개선되었습니다. 이제 모듈 가져오기를 이해하며, 이전 셀에 정의된 모듈을 가져오는 셀이 있는 경우 특히 유용합니다.

이 기능을 활성화하려면 VS Code Insiders에 최신 Pylance 미리 보기를 설치하고 jupyter.executionAnalysis.enablednotebook.consolidatedRunButton 설정을 활성화하십시오.

확장 프로그램 작성

확장 프로그램 버그 보고를 위한 이슈 리포터 명령 사용

지난 반복에서 GitHub에 VS Code의 Issue Reporter를 통해 제출할 때 확장 프로그램이 추가 데이터나 템플릿을 제공할 수 있는 방법을 최종 확정했습니다. 확장 프로그램은 명령을 제공할 수 있으며, 이 명령은 도움말: 이슈 보고... 명령을 통해 접근할 수 있습니다. 확장 프로그램을 선택하면 해당 확장 프로그램이 제공하는 명령이 실행됩니다. 확장 프로그램과 함께 이 기능이 어떻게 작동할 수 있는지에 대한 자세한 내용은 이슈 보고 문서/릴리스 정보를 검토해 주세요!

또한, 설치된 모든 확장 프로그램은 빠른 열기(Quick Open)를 통해 신속하게 보고할 수 있습니다. 빠른 열기(⌘P (Windows, Linux Ctrl+P))에서 issue 를 입력하면 보고할 설치된 확장 프로그램을 빠르게 선택하거나 검색할 수 있습니다.

일부 확장 프로그램은 이 새로운 이슈 보고 흐름을 활용하도록 전환될 예정이며, 더 이상 명령 팔레트에 직접 제공되는 사용자 지정 이슈 보고... 명령이 필요하지 않게 됩니다.

미리보기 기능

터미널에서 겹치는 글꼴 재조정

새로운 설정 terminal.integrated.rescaleOverlappingGlyphs를 사용할 수 있으며, 이는 셀이 겹치는 글꼴을 재조정합니다. 이는 모호한 너비 문자를 포함하도록 설계되었으며, 백엔드 pty/유니코드 버전에서 생각하는 것과 일치하지 않는 폰트 글꼴을 가질 수 있습니다. 예를 들어, 대부분의 글꼴에서 로마 숫자 유니코드 문자(U+2160+)는 일반적으로 여러 셀을 차지하므로 이 설정이 활성화되면 가로로 재조정됩니다.

재조정 없이

Before the glyphs for Ⅷ and Ⅻ depending on the font would always overlap the following cells

재조정 적용

After the glyphs for Ⅷ and Ⅻ depending on the font are rescaled horizontally to fit a single cell

재조정이 발생하는 규칙은 여전히 조정 중이며, 안정화되면 향후 기본적으로 활성화하는 것을 고려하고 있습니다. 이 기능을 사용해 보고 재조정되었지만 재조정되지 않아야 한다고 생각하는 문자를 발견하면 이슈를 생성해 주세요.

로컬 작업 영역 확장

작업 영역에 직접 확장 프로그램을 패키징할 수 있는 이 새로운 미리 보기 기능을 소개하게 되어 기쁩니다. 이 기능은 특정 작업 영역 요구 사항을 충족하고 보다 맞춤화된 개발 환경을 제공하도록 설계되었습니다.

이 기능을 사용하려면 작업 영역 내 .vscode/extensions 폴더에 확장 프로그램을 패키징해야 합니다. 그러면 VS Code는 이 확장 프로그램을 확장 보기의 작업 영역 추천 섹션에 표시하며, 사용자는 여기서 설치할 수 있습니다. VS Code는 해당 작업 영역에만 확장 프로그램을 설치합니다. 또한, 이 확장 프로그램을 설치하고 실행하기 전에 사용자가 작업 영역을 신뢰해야 합니다.

예를 들어, VS Code 리포지토리vscode-selfhost-test-provider 확장 프로그램을 살펴보세요. 이 확장 프로그램은 테스트 기능을 통합하여 기여자가 작업 영역 내에서 직접 테스트를 보고 실행할 수 있도록 합니다. 다음 스크린샷은 확장 보기의 작업 영역 추천 섹션에 있는 vscode-selfhost-test-provider 확장 프로그램과 설치할 수 있는 기능을 보여줍니다.

Local Workspace Extension

이 기능은 Insiders 릴리스에서 extensions.experimental.supportWorkspaceExtensions를 통해 미리 보기로 사용할 수 있습니다. 직접 사용해 보시고 피드백은 VS Code 리포지토리에 이슈를 생성하여 알려주세요.

제안된 API

터미널 쉘 통합 API

쉘 통합 활성화 터미널에서 제공되는 일부 정보에 액세스할 수 있도록 하는 새로운 제안 API를 사용할 수 있습니다. 이 API를 사용하면 터미널에서 실행 중인 명령의 수신 데이터 및 종료 코드를 수신 대기할 수 있습니다. 또한 프롬프트가 사용 가능해질 때까지 대기한 후 명령을 보내는 보다 안정적인 방법을 도입하여 다양한 쉘 설정에서 발생할 수 있는 일부 충돌/경쟁 조건을 수정하는 데 도움이 됩니다.

Terminal.shellIntegration.executeCommand 제안 사용 예시

// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidActivateTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
  if (terminal === myTerm) {
    const command = shellIntegration.executeCommand('echo "Hello world"');
    const code = await command.exitCode;
    console.log(`Command exited with code ${code}`);
  }
}));

// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
  if (!myTerm.shellIntegration) {
    myTerm.sendText('echo "Hello world"');
    // Without shell integration, we can't know when the command has finished or what the
    // exit code was.
  }
}, 3000);

명령의 데이터 스트림 수신 대기 예시

// Create a terminal and log all data via console.log
const myTerm = window.createTerminal();
window.onDidStartTerminalShellExecution(execution => {
  if (execution.terminal === myTerm) {
    const stream = execution.createDataStream();
    for await (const data of stream) {
      console.log(data);
    }
  }
});

새로운 API는 여기에서 검토할 수 있습니다.

인증 API에 대한 자세히 알아보기 속성

이번 반복에서는 AuthenticationForceNewSessionOptionslearnMore 속성을 지정할 수 있는 새로운 제안 API를 추가했습니다. 아이디어는 옵션에 forceNewSession 속성을 사용하여 getSession을 호출하는 경우, 인증을 요청하는 이유에 대해 사용자에게 제공될 URI를 포함할 수 있다는 것입니다. 다음은 그 예시입니다.

Screenshot of a modal window that's asking to authenticate with GitHub and that contains a Learn more button

코드에서 어떻게 보이는지

vscode.authentication.getSession('github', ['repo'], {
  forceNewSession: {
    detail: l10n.t('To show you more relevant Copilot Chat results, we need permission to read the contents of your repository on GitHub.'),
    learnMore: Uri.parse('https://aka.ms/copilotRepoScope')
  };
});

새로운 API는 여기에서 검토할 수 있습니다.

오래된 주석

새로운 주석 스레드 applicability 속성을 통해 주석 보기에 주석 스레드를 오래된 것으로 표시할 수 있습니다.

Outdated comment in the Comments view

API 제안은 여기에서 볼 수 있습니다.

주석 보기 메뉴

commentsView/commentThread/context 제안 메뉴를 통해 주석 보기의 주석 스레드에 대한 마우스 오른쪽 버튼 컨텍스트 메뉴에 동작을 추가할 수 있습니다. 일반적인 inline 그룹도 존중되므로 동작이 주석 보기 인라인에 표시됩니다.

Example of an inline action in the Comments view

엔지니어링

Electron 28 업데이트

이번 반복에서는 Electron 28 업데이트를 안정적인 릴리스 사용자에게 제공합니다. 이 업데이트에는 Chromium 120.0.6099.291 및 Node.js 18.18.2가 포함됩니다. Insiders 빌드에서 셀프 호스팅하고 조기 피드백을 제공한 모든 분들께 감사드립니다.

주요 수정 사항

  • 204886 이름은 같지만 경로가 다른 파일을 간단한 파일 선택기에서 열면 실패합니다.

감사합니다

마지막으로, VS Code 기여자에 대한 진심 어린 감사의 말씀을 전합니다.

이슈 추적

이슈 추적에 대한 기여

풀 리퀘스트

vscode 기여

vscode-css-languageservice에 대한 기여

vscode-eslint 기여

vscode-extension-samples 기여

vscode-hexeditor에 기여

vscode-js-debug 기여

vscode-json-languageservice 기여

vscode-pull-request-github 기여

vscode-pylint에 대한 기여

vscode-python-debugger 기여

debug-adapter-protocol에 기여

inno-updater에 대한 기여

language-server-protocol 기여

monaco-editor 기여

node-pty 기여

© . This site is unofficial and not affiliated with Microsoft.