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

2024년 8월 (버전 1.93)

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

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


Visual Studio Code 2024년 8월 릴리스에 오신 것을 환영합니다. 이번 버전에는 많은 업데이트가 포함되어 있으며, 주요 내용은 다음과 같습니다.

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

접근성

키보드로 테이블 열 크기 조정

새 명령인 list.resizeColumn을 사용하면 키보드를 사용하여 열 크기를 조정할 수 있습니다. 이 명령을 트리거한 후 크기를 조정할 열을 선택하고 원하는 너비의 백분율을 입력합니다. 다음 비디오에서는 키보드 단축키 편집기에서 열 크기를 조정하는 방법을 보여줍니다.

채팅 응답 합성을 위한 화면 읽기 프로그램 지원

accessibility.voice.autoSynthesize 설정을 업데이트하여 화면 읽기 프로그램 사용자가 aria 알림을 받는 대신, 저희 합성기로 안내되는 채팅 응답을 들을 수 있도록 선택할 수 있게 했습니다.

디버깅 개선 사항

편집기에 포커스가 맞춰진 상태에서 디버깅할 때, 디버그: 시계에 추가 명령을 호출하면 화면 읽기 프로그램 사용자에게 변수 값이 알려집니다.

또한, 디버그 접근성 도움말 대화 상자가 더 철저하게 개선되었습니다.

워크벤치

새로운 프로필 편집기

새로운 프로필 편집기가 Visual Studio Code에서 모든 사용자에게 일반적으로 제공됩니다. 새로운 프로필 편집기를 통해 한 곳에서 프로필을 관리할 수 있습니다. 이 경험에는 새 프로필 만들기, 기존 프로필 편집 및 삭제, 프로필 가져오기 및 내보내기(다른 사람과 공유)가 포함됩니다. 자세한 내용은 프로필 문서를 참조하십시오.

Screenshot that shows the Profiles editor.

창 제어 오버레이에 대한 Linux 지원

window.experimentalControlOverlay 새 설정을 통해 사용자 지정 제목 표시줄이 window.titleBarStyle 설정을 통해 활성화된 경우에도 기본 창 제어가 표시됩니다.

Screenshot of VS Code on Linux, highlighting the Linux window control overlays in the top-right corner.

기본적으로 Linux에서는 아직 사용자 지정 제목이 기본적으로 활성화되지 않았지만, 결국 그렇게 할 계획입니다. 사용자 지정 제목을 켜면 기본 창 제어 오버레이가 자동으로 표시됩니다. 이 새로운 기능을 사용할 때 발생하는 모든 피드백을 환영합니다!

댓글 정렬

댓글을 파일 내 위치 또는 날짜별로 정렬할 수 있습니다.

Screenshot that shows the additional comment sorting options.

설정 편집기에서 설정 URL 복사

설정 편집기에서 특정 설정으로 바로 가는 URL을 복사할 수 있습니다. 설정 URL로 이동하면 VS Code가 열리고 설정 편집기에서 해당 설정에 포커스가 맞춰집니다.

Video that shows how to copy a setting URL in the Settings editor.

탐색기에서 역순 정렬

explorer.sortOrderReverse 추가 정렬 옵션을 추가하여 다양한 탐색기 정렬 구성을 역순으로 적용할 수 있으며, 이를 통해 정렬 유연성을 높였습니다.

편집기

전구 개선 사항

지난 마일스톤에서는 코드 작업 전구 아이콘이 표시되는 위치를 개선했습니다. 이제 editor.lightbulb.enabled를 기본값으로 onCode로 설정했습니다. 이는 전구 아이콘이 소스 코드 줄에 커서가 있을 때만 표시되고 더 적게 나타난다는 것을 의미합니다.

액션 목록 색상 테마

코드 작업 메뉴와 같은 액션 목록 컨트롤의 색상은 editorActionList.background, editorActionList.foreground, editorActionList.focusForeground, editorActionList.focusBackground 키를 사용하여 테마별로 구성할 수 있습니다. 기본적으로 액션 목록 컨트롤 테마는 빠른 선택 및 명령 팔레트의 테마와 일치합니다. 색상 테마 사용자 지정에 대한 자세한 내용은 여기를 참조하십시오.

GitHub Copilot

이번 마일스톤에서는 편집기, 채팅 보기 및 인라인 채팅 전반에 걸쳐 GitHub Copilot 환경을 지속적으로 개선했습니다. 또한 사용자가 시도해 볼 수 있는 몇 가지 실험적인 기능과 피드백을 받고자 하는 기능이 추가되었습니다.

개선된 테스트 생성

GitHub Copilot을 사용하면 편집기 내용 메뉴의 Copilot을 사용하여 테스트 생성 작업 또는 인라인 채팅의 /tests 슬래시 명령을 사용하여 코드에 대한 테스트를 생성할 수 있습니다.

기존 테스트 파일을 찾고 새 테스트를 해당 파일에 추가하여 테스트 생성 흐름을 개선했습니다. 아직 테스트 파일이 없으면 Copilot이 생성된 테스트를 위한 새 테스트 파일을 만듭니다.

테스트 및 문서 생성 코드 작업 이름 변경

메서드 이름과 같은 식별자에 커서를 놓으면 GitHub Copilot이 테스트 또는 문서를 생성하는 코드 작업을 제공합니다. 목적을 더 잘 반영하기 위해 이 코드 작업을 Copilot을 사용하여 테스트 생성Copilot을 사용하여 문서 생성으로 이름을 변경했습니다. 이전에는 Copilot으로 테스트Copilot으로 문서화라고 불렸습니다.

New code action names for test and documentation generation

개선된 채팅 기록

채팅 보기 상단에 있는 채팅 보기 버튼을 사용하여 채팅 기록에서 이전 채팅 세션을 열 수 있습니다. 이제 이러한 세션에는 더 사용자 친화적인 AI 생성 이름이 있습니다. 각 행의 연필 아이콘을 선택하여 세션 이름을 수동으로 바꿀 수도 있습니다.

이 채팅 기록 항목은 이제 마지막 요청 날짜별로 정렬되며, 날짜별로 레이블이 지정되고 그룹화됩니다.

The chat history picker shows friendly session names and entries are grouped by age.

참고: 새 채팅 세션만 AI 생성 이름을 받습니다. 이미 가지고 있던 채팅 세션은 이름이 변경되지 않습니다.

빈 창에 대한 채팅 세션 저장

이전에는 VS Code가 빈 창(폴더 또는 작업 영역이 열려 있지 않은 창)에 대한 채팅 세션을 저장하지 않았습니다. 이제 이 세션은 예상대로 저장되며, 빈 창의 이전 채팅은 채팅 보기 버튼을 통해 로드할 수 있습니다.

참고: 여러 빈 창에서 동일한 채팅 세션을 동시에 열거나 사용하지 마십시오.

빠른 채팅에서 컨텍스트 첨부

빠른 채팅을 사용할 때 이제 컨텍스트 첨부 작업을 사용하여 파일 및 기호와 같은 컨텍스트를 Copilot 요청에 첨부할 수 있습니다.

좋아요 취소 피드백 세부 정보

예상치 못한 Copilot 채팅 응답을 받으셨나요? 채팅 응답의 도구 모음에서 좋아요 취소 버튼을 선택하여 저희를 도와주세요. 이제 문제점을 설명할 수 있는 몇 가지 자세한 옵션이 포함된 드롭다운이 표시됩니다. 이 메뉴에서 문제 보고 프로그램도 열 수 있습니다.

The chat response feedback dropdown, showing extra details on the thumbs down button.

코드 생성 지침 (실험)

설정: github.copilot.chat.experimental.codeGeneration.instructions

Copilot은 리팩토링, 단위 테스트 생성 또는 기능 구현의 일부로 코드를 생성하는 데 도움이 될 수 있습니다. 그리고 Copilot이 생성하는 코드에 대해 사용하려는 특정 라이브러리나 따르려는 특정 코딩 스타일이 있을 수 있습니다.

실험 설정 github.copilot.chat.experimental.codeGeneration.instructions을 사용하면 코드를 생성하는 모든 Copilot 요청에 추가되는 지침 집합을 정의할 수 있습니다.

지침은 사용자 또는 작업 영역 설정에 정의할 수 있지만 파일에서 가져올 수도 있습니다.

다음 코드 조각은 설정 및 외부 파일 모두에서 지침 집합을 정의하는 방법을 보여줍니다.

  "github.copilot.chat.experimental.codeGeneration.instructions": [
    {
      "text": "Always add a comment: 'Generated by Copilot'."
    },
    {
      "text": "In TypeScript always use underscore for private field names."
    },
    {
      "file": "code-style.md" // import instructions from file `code-style.md`
    }
  ],

myProject/code-style.md 내용

Always use React functional components.
Always add comments.

스크린샷에서 참조 섹션에서 지침이 사용된 것을 볼 수 있습니다.

Copilot Chat using code generation instructions.

채팅 보기에서 자동 채팅 참여자 감지 (실험)

설정: chat.experimental.detectParticipant.enabled

GitHub Copilot에는 @workspace와 같이 채팅 보기에 명령을 제공하는 몇 가지 내장 채팅 참여자가 있습니다. 이전에는 채팅 프롬프트에서 채팅 참여자와 명령을 명시적으로 지정해야 했습니다.

자연어로 채팅 참여자를 더 쉽게 사용하기 위해, 앞으로 몇 주 안에 Copilot 채팅이 질문을 적절한 참여자 또는 채팅 명령으로 자동 라우팅하도록 실험할 예정입니다.

Screenshot of Chat view that shows how the '@workspace' participant is automatically detected.

자동으로 선택된 참여자가 질문에 적합하지 않은 경우, 채팅 응답 상단의 다시 실행 (제외) 링크를 선택하여 질문을 Copilot에 다시 보낼 수 있습니다.

인라인 채팅 컨텍스트로 최근 코딩 파일 사용 (실험)

설정: github.copilot.chat.experimental.temporalContext.enabled

Copilot에 프롬프트를 제공할 때 방금 작업하거나 보고 있던 코드와 관련된 질문을 하는 경우가 많습니다. 인라인 채팅은 최근에 보거나 편집한 코드를 컨텍스트로 사용하여 더 관련성 높은 제안을 제공할 수 있습니다.

이 기능은 아직 실험적이지만 모두가 테스트하기에도 좋습니다.

현재 편집기 줄을 인라인 채팅 프롬프트로 사용 (실험)

설정: github.copilot.config.experimental.inlineChatCompletionTrigger.enabled

인라인 채팅을 먼저 열고 채팅 프롬프트를 입력하는 대신, 편집기에서 입력을 시작하고 현재 줄의 내용을 인라인 채팅의 프롬프트로 직접 사용할 수 있습니다. 또한 더 원활한 채팅 경험을 위해 Copilot은 코드를 작성하는 대신 프롬프트를 입력할 때를 감지하고 자동으로 인라인 채팅을 시작할 수 있습니다.

현재 줄을 인라인 채팅 프롬프트로 사용하는 다양한 방법은 다음과 같습니다.

  • 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))에서 인라인 채팅: 편집기에서 현재 줄로 시작 입력
  • inlineChatExpansion 컨텍스트 키와 결합된 inlineChat.startWithCurrentLine 명령에 대한 키 바인딩 구성
  • github.copilot.config.experimental.inlineChatCompletionTrigger.enabled 설정을 활성화하여 Copilot이 현재 줄에 소스 코드보다 텍스트가 더 많음을 감지하고 인라인 채팅을 시작하도록 합니다.

다음 비디오는 Copilot이 현재 줄에 텍스트가 많음을 감지한 후 인라인 채팅 시작을 제안하는 방법을 보여줍니다.

채팅에서 디버깅 시작 (실험)

설정: github.copilot.advanced.startDebugging.experimental.enabled

새로운 실험적 슬래시 명령인 /startDebugging@vscode 채팅 참여자에서 사용할 수 있습니다. 이 명령을 사용하여 런치 구성을 만들고 앱 디버깅을 시작할 수 있습니다.

생성한 launch.json 빠른 선택에서 GitHub Copilot으로 디버그 구성 생성 옵션을 통해 이 명령에 액세스할 수도 있습니다.

Generate Debug Configuration with GitHub Copilot is an option in the Create a launch.json file Quick Pick.

테스트 커버리지를 기반으로 테스트 생성 (실험)

설정: github.copilot.chat.experimental.generateTests.codeLens

테스트 커버리지 정보가 사용 가능한 경우 GitHub Copilot은 아직 테스트로 커버되지 않은 함수 및 메서드에 대해 Copilot을 사용하여 테스트 생성 CodeLens를 제공할 수 있습니다.

언어

"SQL"을 "MS SQL"로 이름 변경

SQL 파일의 언어 이름이 Microsoft SQL Server(T-SQL) 구문에 더 집중함을 나타내기 위해 "SQL"에서 "MS SQL"로 이름이 변경되었습니다. 이 언어 모드의 파일 확장자는 여전히 .sql이며 구문 강조 표시는 변경되지 않았습니다.

vscode.dev에서 전체 프로젝트 IntelliSense 및 패키지 형식

웹용 VS Code에서 JavaScript 및 TypeScript 작업을 훨씬 더 잘 할 수 있게 되었습니다. 우선, 패키지 IntelliSense를 구현하여 react와 같은 모든 가져온 패키지의 제안 및 문서를 볼 수 있습니다. 이는 데스크톱 버전의 VS Code와 거의 동일하게 작동합니다.

IntelliSense and error reporting for an imported package on vscode.dev.

TypeScript 파일에서는 package.json에 나열된 패키지에 대한 IntelliSense를 제공합니다. JavaScript 파일은 약간 더 유연하며 자동 형식 가져오기를 사용하여 현재 파일로 가져온 모든 패키지에 대한 IntelliSense를 제공합니다. package.json에 나열되지 않은 경우에도 마찬가지입니다.

패키지 IntelliSense 덕분에 JavaScript 및 TypeScript 프로젝트에 대한 전체 프로젝트 IntelliSense도 활성화했습니다. 이를 통해 코드 탐색이 크게 개선되어 프로젝트의 모든 기호에 대해 올바르게 정의로 이동모든 참조 찾기를 수행할 수 있습니다. 또한 형식 오류 보고도 가능합니다. 코드 작성 중 자동 가져오기도 지원합니다.

Finding all references of a symbol in a TypeScript project.

패키지 형식 및 전체 프로젝트 IntelliSense는 Chrome, Microsoft Edge 및 Firefox에서 지원됩니다. Safari는 아직 지원되지 않습니다. ReadableByteStreamController를 구현하지 않기 때문입니다.

소스 제어

소스 제어 그래프 보기

사용자 피드백을 기반으로 지난 마일스톤에 활성화된 기록 그래프를 소스 제어 보기에서 소스 제어 그래프라는 새 보기로 이동했습니다. 이렇게 하면 기본 보기의 정보 과부하가 줄어들고 새 보기를 필요에 따라 숨기기/축소/이동할 수 있습니다. 이는 전체 기능 기록 그래프의 기반을 마련합니다.

소스 제어 그래프 보기는 현재 현재 브랜치의 원격/기준을 표시합니다. 다음 마일스톤에서는 그래프를 모든 리포지토리 참조로 필터링하는 기능과 여러 리포지토리가 있는 작업 영역에 대한 환경을 개선하는 작업을 하고 있습니다.

Source Control Graph view showing a graph visualization of the repository.

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

Reftable 형식 지원

Git 2.45는 "reftable"이라는 새 참조 저장 백엔드에 대한 예비 지원을 추가했습니다. 이번 마일스톤에서는 이 새로운 참조 저장 백엔드를 지원하도록 내장 Git 확장을 업데이트했습니다.

Git 2.45를 사용하면 --ref-format=reftable 플래그를 사용하여 새 참조 저장 백엔드를 사용하는 리포지토리를 생성하거나 복제할 수 있습니다. Git 2.46은 git refs migrate 명령을 사용하여 기존 리포지토리를 새 참조 저장 형식으로 마이그레이션하는 기능도 추가했습니다.

새 참조 저장 백엔드는 여전히 실험적인 것으로 간주됩니다.

폴더 압축 설정

커뮤니티 기여 덕분에 소스 제어 보기에서 변경 사항을 트리로 볼 때 폴더가 압축 형식으로 렌더링되는지 여부를 제어하는 새 설정 scm.compactFolders를 추가했습니다.

터미널

Julia 및 NuShell 지원

Julia 및 NuShell에 대한 셸 통합 지원이 추가되었습니다. 이를 통해 명령 장식최근 명령 실행과 같은 기능을 이 셸 유형에 대해 사용할 수 있습니다.

여러 터미널 탭 이동

이제 터미널 탭을 여러 개 선택하고 정렬된 그룹으로 터미널 목록 주위로 이동할 수 있습니다.

명령 가이드 설정 및 색상 테마

명령 가이드는 명령과 해당 출력이 표시될 때 옆에 나타나는 막대로, 커서를 올리면 표시됩니다. 명령 가이드terminal.integrated.shellIntegration.showCommandGuide 설정을 사용하여 비활성화할 수 있으며, 색상은 terminalCommandGuide.foreground 테마 키를 사용하여 테마별로 구성할 수 있습니다.

노트북

변경되지 않은 셀을 diff 보기에서 표시하거나 숨기기

노트북 diff 보기는 이제 변경되지 않은 셀을 숨겨 변경된 셀에 집중할 수 있도록 합니다. 동시에 모든 변경되지 않은 셀의 입력은 항상 축소됩니다.

diff 보기에서 공백 관리

노트북 diff 보기는 이제 다음 설정을 존중합니다.

노트북 실행 횟수에 대한 고정 스크롤

코드 셀의 실행 횟수가 코드 셀을 아래로 스크롤할 때 화면 하단에 고정됩니다. 이렇게 하면 긴 코드 셀에서 작업할 때 실행 상태를 보고 업데이트를 확인하기가 더 쉬워집니다.

작업

작업 종료 시 작업 터미널 열어두기

작업의 터미널 프로세스가 0이 아닌 코드로 종료되면, 디버깅을 쉽게 하기 위해 터미널을 열어둡니다.

디버그

변수 정의로 이동

디버그 확장은 이제 변수와 표현식을 코드의 위치에 연결할 수 있습니다. 이 링크가 있는 데이터는 변수 보기, 시계 보기 및 디버그 콘솔에서 Ctrl 키를 눌러 선택할 수 있습니다(macOS에서는 Cmd 키를 눌러 선택).

내장 JavaScript 디버거는 코드에 정의된 함수의 위치를 연결합니다. 다른 디버그 확장은 이 기능을 활성화하려면 해당 프로토콜 변경 사항을 채택해야 합니다.

찾기 컨트롤

이제 디버그 콘솔(⌥⌘F (Windows, Linux Ctrl+Alt+F))에서 찾기 컨트롤을 열어 입력에서 결과를 검색할 수 있습니다. 출력 결과 검색 지원은 향후 마일스톤에서 조사될 예정입니다.

필터 컨트롤 오른쪽에 있는 디버그 콘솔 도구 모음에 나타나는 디버그 콘솔: 찾기 포커스 작업으로도 컨트롤에 액세스할 수 있습니다.

실행 구성 입력 캐시

실행 구성 및 작업에 사용되는 입력 변수는 마지막으로 입력한 값을 유지하여 이를 기반으로 하는 디버그 세션을 다시 실행하는 프로세스를 용이하게 합니다. 이는 입력에 명시적인 default가 정의되지 않은 경우에만 수행됩니다.

JavaScript 디버거

실험적 네트워크 보기

JavaScript 디버거에는 debug.javascript.enableNetworkView 설정이 켜져 있을 때 사용할 수 있는 기본적이고 실험적인 네트워크 보기가 포함되어 있습니다. 이 보기는 브라우저 세션에서 만들어진 요청 및 응답에 대한 정보를 표시합니다.

JavaScript 디버거의 네트워크 보기를 보여주는 스크린샷. 테마: Codesong ( vscode.dev에서 미리 보기)

네트워크 보기는 Node.js 22.6.0 이상에서도 프로세스가 인수에 --experimental-network-inspection으로 시작될 때 작동합니다. 예를 들어, node 실행 구성에 "runtimeArgs": ["--experimental-network-inspection"]을 추가할 수 있습니다.

참고: Node의 네트워킹 구현은 아직 초기 단계이며 요청 및 응답에 대한 대부분의 데이터는 아직 사용할 수 없습니다.

테스트

메시지에 대한 스택 추적 지원

테스트 확장은 이제 테스트 실패에 스택 추적을 연결할 수 있습니다. 그렇게 하면 테스트 결과 보기 및 오류 미리 보기에서 호출 스택의 각 프레임 주변 코드가 표시됩니다. 보기에서 코드를 Ctrl 키를 누르고 클릭(macOS에서는 Cmd 키를 누르고 클릭)하여 원래 위치로 이동하거나 헤더의 파일로 이동 작업을 사용할 수 있습니다.

실패로 이어진 해당 호출 스택과 함께 테스트 실패 메시지를 보여주는 편집기. 테마: Codesong ( vscode.dev에서 미리 보기)

설치 프로그램

Debian 패키지가 이제 packages.microsoft.com 리포지토리를 추가할지 확인하라는 메시지를 표시합니다. 이렇게 하면 나중에 apt를 사용하여 패키지를 업데이트할 수 있습니다.

Terminal showing the prompt for adding the Microsoft packages repo during the install.

원격 개발

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

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

  • Dev Container 템플릿에 대한 선택적 경로
  • SSH를 사용한 원격 OS와의 호환성 확장

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

웹용 VS Code

git.openDiffOnClick 설정이 이제 https://vscode.dev 또는 GitHub Repositories 확장과 함께 데스크톱에서 GitHub 리포지토리를 탐색할 때 존중됩니다.

Open diff by selecting Open Changes for changed resources.

확장 프로그램 기여

Python

Django 단위 테스트 지원

우리가 가장 많이 요청한 기능 중 하나에 대한 지원을 발표하게 되어 기쁩니다. 이제 테스트 탐색기를 통해 Django 단위 테스트를 검색하고 실행할 수 있습니다! 이 기능을 활성화하는 방법에 대한 설정 지침은 문서를 확인하십시오.

테스트 탐색기에서 검색 및 실행되는 Django 단위 테스트. 테마: Catppuccin Macchiato ( vscode.dev에서 미리 보기)

이 새로 추가된 기능을 탐색하면서 피드백을 제공하고 문제를 vscode-python 리포에 보고하거나 Python: 문제 보고 명령을 사용하여 보고해 주십시오.

기본 REPL 개선 사항

새로운 기본 REPL 환경에 대한 더 많은 개선 사항과 버그 수정이 이루어졌습니다. 기본 REPL을 스마트 전송을 위한 기본 대상으로 실험적으로 출시하고 있지만, 이 기능을 사용해보고 싶다면 사용자 settings.json에서 python.REPL.sendToNativeREPL을 설정하고 VS Code 창을 다시 로드하십시오.

Pylance와 함께 인라인 힌트에서 정의로 이동

Pylance와 함께 인라인 힌트가 활성화되면, 이제 형식을 마우스로 가리키고 Ctrl 키(macOS에서는 Cmd 키)를 누른 채 클릭하여 해당 형식의 정의로 더 편리하게 이동할 수 있습니다.

Go to Definition supported by using Ctrl/Cmd + click when hovering over a Python type on an inlay hint.

테스트 디버깅 시 다시 시작 지원

이제 디버그 도구 모음 컨트롤을 통해 테스트를 디버깅할 때 디버거를 다시 시작할 수 있습니다.

GitHub Pull Requests 및 Issues

GitHub Pull Requests 확장에 더 많은 진전이 있었습니다. 이 확장을 통해 풀 리퀘스트 및 이슈를 작업하고, 만들고, 관리할 수 있습니다. 확장 0.96.0 릴리스의 변경 로그를 검토하여 주요 내용을 알아보십시오.

확장 프로그램 작성

VS Code의 ECMAScript 모듈(ESM) 로딩 영향

VS Code 코어에서 코드 로딩 방식을 AMD/CommonJS에서 ESM으로 변경하는 과정에 있습니다. 확장은 CommonJS로 계속 로드되지만, 이 변경으로 인해 require 메서드가 변경됩니다. 특히 1.94 릴리스부터 require.mainundefined가 됩니다. 설치 파일에 액세스할 수 있는 사용 사례가 있는 경우 vscode.env.appRoot를 사용하거나 문의해 주시기 바랍니다.

터미널 셸 통합 API

터미널 셸 통합 API를 이제 사용할 수 있습니다. 이 강력한 API를 통해 확장은 터미널에서 실행되는 명령을 수신하고, 해당 명령의 원시 출력, 종료 코드 및 명령줄을 읽을 수 있습니다.

window.onDidEndTerminalShellExecution(event => {
  if (event.execution.commandLine.value.startsWith('git')) {
    if (event.exitCode === 0) {
      // React to a successful git command
    } else {
      // React to a failing git command
    }
  }
});

또한 명령을 더 안정적으로 실행할 수 있는 방법을 제공하며, 명령이 터미널에 두 번 에코되는 것을 방지하기 위해 프롬프트가 시작될 때까지 기다립니다.

const commandLine = 'echo "Hello world"';
if (term.shellIntegration) {
  const execution = shellIntegration.executeCommand({ commandLine });
  window.onDidEndTerminalShellExecution(event => {
    if (event.execution === execution) {
      console.log(`Command exited with code ${event.exitCode}`);
    }
  });
} else {
  term.sendText(commandLine);
  // Without shell integration, we can't know when the command has finished or what the
  // exit code was.
}

자세한 내용은 vscode.d.ts확장 샘플에서 API를 확인하십시오.

인증 계정 API

인증 API는 이제 여러 계정을 처리할 때 더 많은 제어 기능을 제공합니다. 항상 누락되었던 것은 모든 계정을 가져오고 특정 계정에 대한 AuthenticationSession을 가져오는 기능이었습니다. 이제 getAccounts API의 완료로 가능합니다.

인증 세션을 사용하려는 확장 작성자는 다음 코드를 실행하여 사용자가 로그인한 계정의 AuthenticationSessionAccountInformation을 가져올 수 있습니다.

const accounts = vscode.authentication.getAccounts('microsoft');

여기서 해당 계정을 사용하여 특정 계정에 대한 세션을 발행할 수 있습니다.

const session = vscode.authentication.getSession('microsoft', scopes, {
  account: accounts[0]
});

참고: 이 기능이 작동하려면 인증 제공자가 getSessionscreateSession 모두에 전달된 매개변수를 처리해야 합니다. 내장 GitHub 및 Microsoft 제공자는 이미 이를 채택했습니다.

이를 통해 여러 인증 세션을 처리하고 이전에 지원할 수 없었던 다양한 시나리오를 처리할 수 있는 가장 명확한 방법이라고 생각합니다.

디버그 어댑터 프로토콜

locationReferences를 변수 및 기타 데이터 유형에 디버그 어댑터 프로토콜에 추가하여 소스 위치를 연결할 수 있도록 했습니다.

VS Code의 WebAssembly

wasm-wasi-core 확장 및 @vscode-wasm-wasi@vscode/wasm-component-model npm 모듈의 1.0 버전이 릴리스되었습니다. 사용 샘플은 wasm-* 하위 폴더에 있는 vscode-extension-samples 리포지토리에서 찾을 수 있습니다. 또한 VS Code 블로그에 VS Code 확장 내에서 WebAssembly 코드를 사용하는 방법에 대한 몇 가지 게시물이 있습니다.

미리보기 기능

터미널 IntelliSense 개선 사항

실험적 PowerShell IntelliSense는 이번 릴리스에서 다음과 같은 개선 사항을 얻었습니다.

  • git checkout에 이전 브랜치로 전환하기 위한 - 완료 기능이 포함되었습니다.
  • terminal.integrated.suggest.runOnEnter의 기본값은 이제 무시로 설정되어, Enter 키가 IntelliSense와 전혀 상호 작용하지 않음을 의미합니다. 이는 사용자가 근육 기억에 미치는 영향이 너무 방해가 된다고 느낀다는 피드백에 따른 것입니다.
  • PowerShell 키워드를 이제 명령(인수 아님)에 대한 완료 기능으로 사용할 수 있습니다.
  • cd 첫 번째 디렉토리 제안은 이제 항상 자체적으로 표시되어, terminal.integrated.suggest.runOnEnter가 설정된 경우 더 원활하게 작동합니다. docs로 cd하면 docs가 상위 결과로 표시됩니다.
  • 명령줄의 다른 위치에서 요청할 때 제안이 더 일관적으로 표시됩니다.
  • 디렉토리를 다시 탐색할 때 <path>/../에 대한 완료 기능이 제공됩니다. cd ..\를 입력하면 ..\..\에 대한 제안이 제공됩니다.

Conpty 제품 내 배송

Conpty는 다른 운영 체제에서 유사 터미널이 작동하는 방식을 에뮬레이션하는 터미널의 백엔드입니다. 이 구성 요소는 Windows 자체에 포함되어 있으며, 이는 버그 수정이 Windows 업데이트를 통해 릴리스됨을 의미합니다. 사용자는 이러한 수정 사항이 도착하기까지 오랜 시간이 걸릴 수 있습니다.

이번 릴리스에서는 Windows Terminal이 하는 것처럼 conpty를 VS Code 자체에 번들로 제공하는 실험적 설정을 포함하고 있습니다. 즉, 사용자는 Windows 업데이트를 기다리는 대신 VS Code 업데이트를 배송할 때 버그 수정을 받을 수 있습니다.

이것을 활성화하려면 다음 설정을 true로 설정하십시오.

"terminal.integrated.experimental.windowsUseConptyDll": true

이것을 활성화하여 기대할 수 있는 개선 유형은 다음과 같습니다.

  • 더 나은 성능
  • 더 안정적인 셸 통합
  • 더 많은 이스케이프 시퀀스 지원 (예: 곧 Windows에서 sixel 지원)

현재 알려진 유일한 문제는 일부 사용자가 프로세스가 남아 있어 VS Code 업데이트를 차단하는 경우(microsoft/vscode#225719)로, 업데이트를 허용하려면 프로세스를 수동으로 종료해야 합니다.

TypeScript 5.6 지원

다가오는 TypeScript 5.6 릴리스에 대한 지원을 계속 개선했습니다. 자세한 내용은 TypeScript 5.6 RC 블로그 게시물을 확인하십시오.

TypeScript 5.6의 미리 보기 빌드를 시작하려면 TypeScript Nightly 확장을 설치하십시오.

새로운 문제 보고 프로그램 구현

이번 마일스톤에서는 문제 보고 프로그램의 새로운 구현을 실험하고 있습니다. 기능은 동일하지만 향상된 다중 모니터 지원 및 웹용 VS Code에서 문제 보고 프로그램을 사용할 수 있다는 점 등 몇 가지 개선 사항이 있어야 합니다.

새로운 버전의 문제 보고 프로그램은 기본적으로 활성화되며 데스크톱 버전 VS Code의 issueReporter.experimental.auxWindow 설정으로 구성할 수 있습니다.

제안된 API

언어 모델을 위한 도구

LanguageModelTool API를 계속해서 반복하고 있습니다. 이 API는 두 가지 주요 부분으로 제공됩니다.

  1. 확장이 도구를 등록할 수 있는 기능. 도구는 언어 모델에서 사용하기 위한 기능의 일부입니다. 예를 들어, 파일의 Git 기록을 읽는 것입니다.

  2. 확장이 요청을 할 때 도구를 전달하거나, 언어 모델이 도구 호출을 요청하거나, 확장이 도구 호출 결과를 다시 전달하는 것과 같이 도구를 지원하는 언어 모델을 위한 메커니즘입니다.

이번 달의 변경 사항 중 하나는 사용자가 특정 도구를 채팅 요청에 수동으로 첨부할 수 있는 기능입니다. 예를 들어, 동적 컨텍스트를 계산하는 도구를 사용하여 요청에 사용할 수 있습니다.

제안은 vscode.proposed.lmTools.d.ts로 찾을 수 있습니다. 도구 등록 및 호출을 시연하는 tool-user 샘플 확장 를 확인하십시오.

업데이트 또는 피드백을 위해 이슈 #213274를 시청하십시오.

참고: API는 아직 활발하게 개발 중이며 변경될 수 있습니다.

테스트 향상

코드와 테스트 연결

확장이 코드를 테스트에 연결하고 그 반대도 가능하게 하는 API를 작업 중입니다. 이를 통해 사용자는 둘 사이를 전환할 수 있으며, 구현 코드에서도 커서에서 테스트 실행과 같은 작업을 수행할 수 있습니다. API가 개발됨에 따라 더 많은 환경을 구축할 것으로 예상합니다.

자세한 정보 및 업데이트는 vscode#126932를 확인하십시오.

귀속 가능한 테스트 커버리지

테스트 단위로 테스트 커버리지를 할당하기 위한 API를 작업 중입니다. 이를 통해 사용자는 어떤 테스트가 어떤 코드를 실행했는지 확인할 수 있으며, 편집기에 표시되는 커버리지와 테스트 커버리지 보기에 표시되는 커버리지를 필터링할 수 있습니다.

자세한 정보 및 업데이트는 vscode#212196를 확인하십시오.

채팅 참여자 감지 API

채팅 보기에 참여자나 채팅 명령을 제공하는 확장을 작성하는 경우, package.jsonchatParticipants 기여에 메타데이터를 추가하여 참여자와 명령이 자동으로 감지되도록 할 수 있습니다. vscode-extension-samples 리포지토리를 예제로 업데이트하여 이 API를 채택하는 방법을 보여주었습니다. 테스트할 때는 chat.experimental.detectParticipant.enabled를 설정해야 합니다. 이 API는 변경될 수 있는 제안된 API임을 유의하십시오.

웹사이트

VS Code API 페이지 아래 여러 링크를 수정했습니다. 일반적인 유형 및 함수에 대한 링크가 다시 작동하며, 기본 유형 및 값은 더 이상 링크로 서식이 지정되지 않습니다!

엔지니어링

VS Code에 ESM 사용에 대한 진행 상황

이번 마일스톤 동안 VS Code Core에 ESM을 채택하기 위한 대부분의 작업을 완료했습니다. 저희 목표는 ECMAScript 모듈(ESM) 로딩을 사용하고 AMD를 완전히 삭제하는 것입니다. 9월에 ESM 지원 Insider 빌드를 출시하기 시작할 것이며, 10월에 예정된 다음 릴리스에서 ESM을 Stable로 출시할 계획입니다.

ESM 출시 계획은 https://github.com/microsoft/vscode/issues/226260에 요약되어 있습니다.

주요 수정 사항

감사합니다

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

이슈 추적

이슈 추적에 대한 기여

풀 리퀘스트

vscode 기여

vscode-css-languageservice에 대한 기여

vscode-eslint 기여

vscode-flake8에 대한 기여

vscode-generator-code에 대한 기여

vscode-hexeditor에 기여

vscode-isort에 대한 기여

vscode-js-profile-visualizer에 대한 기여

vscode-json-languageservice 기여

vscode-languageserver-node에 기여

vscode-loader에 기여

vscode-mypy에 대한 기여

vscode-pull-request-github 기여

vscode-python-debugger 기여

vscode-vsce 기여

language-server-protocol 기여

python-environment-tools 기여

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