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

2020년 4월 (버전 1.45)

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

다운로드: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap


Visual Studio Code 2020년 4월 릴리스에 오신 것을 환영합니다. 이번 버전에는 여러분이 좋아하실 만한 여러 업데이트가 포함되어 있으며, 주요 내용은 다음과 같습니다.

이 릴리스 노트를 온라인으로 읽으려면 code.visualstudio.com업데이트로 이동하십시오.

Insider: 새로운 기능을 가능한 한 빨리 사용해 보고 싶으신가요? 야간 빌드인 Insider를 다운로드하여 최신 업데이트를 즉시 사용해 볼 수 있습니다. 최신 Visual Studio Code 뉴스, 업데이트 및 콘텐츠를 보려면 Twitter에서 @code를 팔로우하세요!

접근성

이번 마일스톤에서는 커뮤니티의 훌륭한 피드백을 받아 여러 접근성 문제를 파악하고 해결하는 데 도움이 되었습니다.

  • 워크벤치 간 쉽게 탐색할 수 있도록 다음 부분 포커스 (F6) 및 이전 부분 포커스 (⇧F6 (Windows, Linux Shift+F6)) 명령을 도입했습니다.
  • 상태 표시줄이 이제 접근 가능하며, 포커스가 맞춰지면 화면 판독기가 해당 내용을 읽을 수 있습니다.
  • 열린 편집기, 탐색 경로, 문제 보기 등 워크벤치의 모든 목록 및 트리 위젯에 적절한 ARIA 레이블을 도입했습니다.

Visual Studio Code를 보다 접근성 있는 제품으로 만들고 모든 사용자의 경험을 개선하는 것은 저희 팀의 최우선 과제 중 하나이며, 이를 위해 VS Code 접근성을 위한 새로운 Gitter 채널을 개설했습니다. 사용자 여러분의 참여와 피드백, 문제 제기, 접근성 실천 공유를 적극 권장합니다.

워크벤치

마우스 휠로 탭 전환

편집기 탭 위에서 마우스 휠을 스크롤하면 현재는 탭을 전환할 수 없고 화면 밖으로 나간 탭만 표시됩니다. 이제 새로운 설정 workbench.editor.scrollToSwitchTabs를 사용하여 편집기 활성 탭을 전환하도록 동작을 변경할 수 있습니다.

아래는 커서가 편집기 탭 영역에 있을 때 사용자가 마우스 휠을 스크롤하면 활성 편집기가 변경되는 모습입니다.

Changing editor tabs using the mouse wheel

참고: scrollToSwitchTabs 설정이 꺼져 있어도 Shift 키를 누른 상태로 스크롤하면 반대 동작(예: 편집기 탭 전환)을 할 수 있습니다.

사용자 지정 창 제목 구분 기호

새로운 설정 window.titleSeparator를 사용하면 창 제목에 사용되는 구분 기호 문자를 변경할 수 있습니다. 기본적으로 대시 '-'가 사용됩니다.

Window title separator using dash

기본 테마의 사이드 바 섹션 헤더 업데이트

기본 어두운 테마와 밝은 테마의 사이드 바 섹션 헤더 스타일을 업데이트했습니다. 이제 투명한 배경을 사용하고 각 헤더에 테두리를 표시합니다.

아래는 열린 편집기 섹션 헤더에 배경색이 없고, VSCODE개요 헤더에 상단 테두리가 있는 모습입니다.

Side Bar section headers

편집기

더 빠른 구문 강조

VS Code의 구문 강조는 Text Mate 문법 해석을 통해 실행됩니다. 이러한 문법은 정규 표현식으로 작성되며, oniguruma 정규 표현식 라이브러리를 사용하여 평가할 수 있습니다. 지금까지는 VS Code 데스크톱(네이티브 노드 모듈)용과 VS Code 브라우저(Web Assembly 바이너리)용으로 두 개의 서로 다른 라이브러리를 사용하여 이러한 정규 표현식을 평가했습니다.

이제 TextMate 인터프리터에서 사용하기에 최적화된 전용 Web Assembly 바인딩을 작성했습니다. 내부 루프에서 메모리 할당을 피하고 몇 달 전에 oniguruma에 추가된 새 API를 채택함으로써, 이전 두 가지 접근 방식보다 더 빠르고 일반적인 프로그래밍 파일의 강조 표시 성능을 최대 3배까지 향상시킬 수 있는 변형을 만들 수 있었습니다. 더 자세한 내용과 측정 결과는 풀 리퀘스트 #95958에서 확인할 수 있습니다.

의미론적 토큰 스타일링

이제 사용자 설정을 통해 의미론적 테마 규칙을 사용자 지정할 수 있습니다. 의미론적 색상은 TypeScript 및 JavaScript에서 사용할 수 있으며, Java 및 C++ 지원은 개발 중입니다. 기본 테마에서는 기본적으로 활성화되어 있으며 테마 확장에서 채택하고 있습니다.

editor.semanticTokenColorCustomizations 설정은 사용자가 기본 테마 규칙을 재정의하고 테마를 사용자 지정할 수 있도록 합니다.

Semantic token color customization

위 설정은 기본 Dark+ 테마를 변경합니다. 매개변수에 새 스타일(이탤릭체 및 새 색상)을 적용하고 기본 라이브러리의 모든 기호(예: Promise, Map 및 해당 속성)를 밑줄로 표시합니다.

아래 예시는 모든 테마에 의미론적 스타일을 추가하는 방법입니다.

"editor.semanticTokenColorCustomizations": {
    "enabled": true, // enable semantic highlighting for all themes
    "rules": {
        // different color for all constants
        "property.readonly": "#35166d",

        // make all symbol declarations bold
        "*.declaration": { "bold": true }
    }
}

의미론적 토큰의 테마는 의미론적 강조 표시 가이드에서 더 자세히 설명합니다.

기본 Dark+ 테마에서 상수에 대한 새 색상

기본 Dark+ 및 기본 Light+ 테마는 이제 쓰기 가능한 변수와 다른 색상으로 상수를 색칠합니다.

아래에서 htmlModerange 상수가 result 변수와 다른 색상인 것을 확인하세요.

기본 Dark+ 테마

Constant color in the Dark+ theme

기본 Light+ 테마

Constant color in the Light+ theme

지속적인 실행 취소 비활성화

지난 마일스톤에서 파일 닫고 다시 열 때 실행 취소/다시 실행 스택이 유지되도록 변경했습니다. 모든 사용자가 이 새 기능을 원하지는 않았으므로, 지속적인 실행 취소를 비활성화하는 설정 files.restoreUndoStack이 추가되었습니다.

통합 터미널

여러 프롬프트 관련 명령 제거

다음 명령이 제거되었습니다.

  • workbench.action.terminal.deleteWordLeft
  • workbench.action.terminal.deleteWordRight
  • workbench.action.terminal.deleteToLineStart
  • workbench.action.terminal.moveToLineStart
  • workbench.action.terminal.moveToLineEnd

이러한 명령은 특정 문자 시퀀스를 터미널로 보내는 방식으로 작동했으며, 이는 터미널이 사용하는 명령 키 바인딩을 기반으로 한 최선의 추측이었습니다. 이러한 명령의 문제는 폐쇄 상자였다는 것으로, 작동 방식을 알아내려면 VS Code 코드베이스를 직접 검색해야 했습니다. 이들은 동일한 작업을 일반적인 방식으로 수행하는 workbench.action.terminal.sendSequence 명령에 대한 사용자 지정 키 바인딩으로 대체되었습니다.

이러한 키 바인딩은 고급 키 바인딩이며 인수가 포함되어 있으므로 키보드 바로 가기 UI를 통해 전체를 볼 수 없지만, 기본 바로 가기 키 열기(JSON) 명령을 실행하여 JSON 정의를 볼 수 있습니다.

Terminal sendSequence keybindings JSON

PowerShell에서 여러 줄 텍스트 붙여넣기 지원

VS Code가 항상 입력하는 것과 동일한 방식으로 텍스트를 보내기 때문에 PowerShell에서는 여러 줄 붙여넣기가 작동하지 않았습니다. 위에서 설명한 대로 여러 키 바인딩이 workbench.action.terminal.sendSequence 명령을 사용하도록 변경되었으며, Windows 전용 새 키 바인딩이 추가된 것을 눈치챘을 수도 있습니다.

{ "key": "ctrl+v",                "command": "workbench.action.terminal.sendSequence",
                                     "when": "terminalFocus && !accessibilityModeEnabled && terminalShellType == 'pwsh'",
                                     "args": {"text":"\u0016"} },

이 새 키 바인딩은 Ctrl+V를 나타내는 텍스트를 PowerShell로 직접 보내며, 이는 PSReadLine에서 올바르게 처리됩니다.

이전

Terminal paste error before

이후

Terminal paste correctly after

테마: Sapphire (Dim)

더블 클릭 단어 선택 제어

새로운 terminal.integrated.wordSeparators 설정을 사용하여 터미널에서 더블 클릭할 때 단어를 구분하는 데 사용되는 구분 기호 문자를 사용자 지정할 수 있습니다.

기본 구분 기호는 다음과 같습니다.

  "terminal.integrated.wordSeparators": " ()[]{}',\"`─"

디버깅

자동 디버그 구성

VS Code에서 디버깅 설정을 구성하는 것은 사용자가 새 디버그 구성을 만들거나(또는 템플릿을 필요에 맞게 수정) 해야 하므로 어려운 작업이 될 수 있습니다. 디버깅 경험을 단순화하기 위한 지속적인 노력의 일환으로, 디버그 확장 작성자가 현재 프로젝트를 분석하고 추가 사용자 구성이 필요 없는 고품질 디버그 구성을 자동으로 제공할 수 있는 새로운 기능을 추가했습니다.

빌드 작업이 제공되는 방식과 유사하게, 자동 디버그 구성은 디버그 보기의 구성 드롭다운 및 디버그 선택 및 시작 빠른 선택에서 해당 디버거(폴더 아이콘) 아래에 그룹화됩니다. 디버거를 선택하면 VS Code에서 사용 가능한 모든 자동 구성을 표시합니다. 구성을 선택하면 새 디버그 세션이 시작됩니다.

다음 스크린캐스트는 새 JavaScript 디버거(미리보기) 및 교육용 Mock Debug의 기능을 보여줍니다.

Automatic debug configurations

디버그 빠른 선택은 빠른 열기(⌘P (Windows, Linux Ctrl+P))에서 'debug ' (공백 포함)을 입력하거나 디버그: 디버그 선택 및 시작 명령을 트리거하여 열 수 있습니다.

다음 마일스톤에서는 자동 디버그 구성을 launch.json에 쉽게 추가하여 추가 구성할 수 있는 UI를 추가할 예정입니다.

작업

더 빠른 빠른 선택 비활성화

버전 1.44에서는 작업: 작업 실행 명령을 실행할 때 표시되는 작업 선택기의 레이아웃을 변경하고 더 빠르게 만들었습니다. 하지만 더 빠른 빠른 선택은 실행하려는 작업에 따라 작업 선택기를 두 단계 깊게 만듭니다. 이전 UI를 원하면 task.quickOpen.showAll 설정을 사용하여 더 빠른 선택기를 비활성화할 수 있습니다.

실행 시 저장

이전에는 더티 편집기가 항상 작업 실행 시 저장되었습니다. 작업을 실행할 때 편집기를 저장하지 않으려면 이제 task.saveBeforeRun으로 해당 동작을 구성할 수 있습니다.

언어

TypeScript 상태 표시줄 항목 향상

TypeScript 파일에 포커스가 맞춰져 있으면 VS Code는 상태 표시줄에 현재 TypeScript 버전을 표시합니다.

TypeScript version status bar entry

버전을 클릭하면 현재 TypeScript 프로젝트에 적합한 명령이 표시됩니다.

TypeScript project commands

작업 영역 TypeScript 버전으로 전환하도록 사용자에게 알림

새로운 typescript.enablePromptUseWorkspaceTsdk 설정은 사용자에게 작업 영역 TypeScript 버전으로 전환할 것인지 묻는 프롬프트를 표시합니다.

Prompt shown when opening a workspace with local TypeScript version

프롬프트를 활성화하려면 프로젝트에 대한 작업 영역 설정으로 "typescript.enablePromptUseWorkspaceTsdk": truetypescript.tsdk를 포함하세요.

Markdown 파일의 편집기 링크와 Markdown 미리 보기의 링크가 이제 폴더를 가리킬 수 있습니다. 이러한 링크를 클릭하면 VS Code 파일 탐색기에서 대상 폴더가 표시됩니다.

소스 제어

GitHub 저장소에 대한 GitHub 인증

VS Code는 이제 GitHub 저장소에 대해 자동 GitHub 인증을 지원합니다. 이제 시스템에서 자격 증명 관리자를 구성하지 않고도 공개 및 비공개 저장소에서 복제, 푸시, 풀할 수 있습니다. 예를 들어 통합 터미널에서 호출되는 git push와 같은 Git 명령도 이제 GitHub 계정에 대해 자동으로 인증됩니다.

git.githubAuthentication 설정을 사용하여 GitHub 인증을 비활성화할 수 있습니다. git.terminalAuthentication 설정을 사용하여 터미널 인증 통합도 비활성화할 수 있습니다.

Git 커밋 입력란 숨기기

새 설정 git.showCommitInput을 사용하면 Git 저장소에 대한 커밋 입력란을 숨길 수 있습니다.

인라인 차이 편집 가능

파일 변경 사항을 미리 볼 때 이제 빠른 차이 편집기 내부를 편집할 수 있습니다.

Editable inline diff

미리 보기 기능

미리보기 기능은 릴리스 준비가 되지 않았지만 사용할 만큼 기능적입니다. 개발 중인 동안 초기 피드백을 환영합니다.

설정 동기화

지난 몇 달 동안 여러 컴퓨터 간에 VS Code 설정을 동기화하는 기능을 지원하기 위해 노력해 왔으며, 이 기능은 Insider 릴리스에서 미리 볼 수 있습니다.

이제 GitHub 계정으로 로그인하여 VS Code 설정을 동기화할 수 있습니다.

Settings Sync Sign in with GitHub

테마: GitHub Sharp with Customizations

전역 스니펫 동기화도 이제 지원됩니다.

새 JavaScript 디버거

이번 달에도 새로운 JavaScript 디버거 개발에 진전을 이루었습니다. Insider 버전에는 기본적으로 설치되며, VS Code 안정 버전에서는 Marketplace에서 설치할 수 있습니다. debug.javascript.usePreview 설정을 활성화하여 기존 실행 구성을 사용하여 시작할 수 있습니다.

이번 달에 추가된 새로운 기능은 다음과 같습니다.

프로파일링 지원

호출 스택 보기의 새 프로파일 버튼을 클릭하거나 디버그: 성능 프로파일 가져오기 명령을 사용하여 Node.js 또는 브라우저 애플리케이션의 CPU 프로파일을 캡처할 수 있습니다. 프로파일 실행 시간은 중지할 때까지, 일정 시간 동안, 또는 다른 중단점을 만날 때까지 선택할 수 있습니다.

프로파일이 완료되면 작업 영역 폴더에 저장되고 VS Code에서 열립니다. 안정 버전 빌드를 실행 중이라면 프로파일을 볼 수 있는 시각화 도구 확장을 설치해야 합니다. Insider 버전에서는 이 확장이 이미 내장되어 있습니다. 프로파일을 열면 함수 수준 및 특정 '핫' 라인에 대한 성능 정보가 포함된 CodeLens가 파일에 추가됩니다. 많은 다른 도구에서 캡처한 프로파일과 달리, 녹화된 프로파일은 소스 맵 인식입니다.

Animation showing the process of taking a profile

테마: Earthsong, 글꼴: Fira Code

자동 연결 통합

debug.javascript.usePreview가 켜져 있으면 VS Code의 자동 연결js-debug에서 제공하는 새 방법을 사용하여 모든 터미널이 디버그 터미널과 유사하게 작동하도록 합니다.

기존 디버거에 대한 자동 연결 개선 사항

  • 디버거가 즉시 연결되어 프로그램 초반에도 중단점을 설정할 수 있습니다.
  • 자식 프로세스가 자동으로 디버깅됩니다.
  • 자동 연결 중에 프로세스 폴링 오버헤드가 없습니다.

변수 보기에서 복잡한 값 복사

이전에는 VS Code 변수 보기에서 개체와 같은 복잡한 값을 복사하려고 하면 종종 잘리거나 불완전한 데이터가 생성되었습니다. VS Code 및 js-debug의 변경 사항으로 인해 전체 값을 복사할 수 있게 되었습니다.

Animation showing copying and pasting a very large array

제품 아이콘 테마

Visual Studio Code에는 보기 및 편집기에서 사용되는 내장 아이콘 세트가 있지만, 호버, 상태 표시줄 및 확장에서 사용할 수도 있습니다. 이 아이콘은 UI 전체에서 파일 이름 옆에 표시되는 파일 아이콘과 달리 제품 아이콘입니다.

VS Code와 함께 제공되는 제품 아이콘은 Codicon 아이콘 글꼴에 포함되어 있으며 기본 제품 아이콘 테마에 사용됩니다. 확장은 이제 이러한 아이콘을 재정의하고 VS Code에 새로운 모양을 제공하는 새 제품 아이콘 테마를 제공할 수 있습니다.

Custom product icon themes

제품 아이콘 테마 설명서에 더 자세한 내용이 있으며 제품 아이콘 테마 샘플도 있습니다.

모든 열린 프로젝트에 대한 TypeScript/JavaScript 기호 검색

TypeScript 3.9 이상을 사용할 때 VS Code의 작업 영역 기호 검색이 이제 기본적으로 열려 있는 모든 JavaScript 및 TypeScript 프로젝트의 결과를 포함합니다. 이전에는 현재 활성 파일의 프로젝트만 검색했습니다.

이것은 새로운 "typescript.workspaceSymbols.scope" 설정으로 제어됩니다. 이전 동작으로 되돌리려면: "typescript.workspaceSymbols.scope": "currentProject"로 설정하세요.

터미널의 링크가 전면 개편되어 백엔드 시스템이 훨씬 강력한 구현으로 변경되어 다음을 가능하게 합니다.

  • 편집기의 링크 검색을 사용하여 웹 및 file:// 링크 검색을 개선했습니다.
  • 탐색기에서 폴더를 열거나 새 VS Code 창을 여는 폴더 링크 지원.
  • 다양한 링크 유형에 대한 다른 링크 작업, 작업 영역을 검색하는 "단어" 링크(terminal.integrated.wordSeparators 설정 기반)로 대체됩니다.
  • 편집기와 유사한 링크 강조 표시 및 호버 환경.

Terminal with various links

테마: Topaz (Dim)

알려진 문제 목록은 이 쿼리에서 확인할 수 있습니다.

동적 보기 아이콘 및 제목

이번 마일스톤에서는 레이아웃을 더 유연하게 만들기 위한 작업을 계속했습니다. 워크벤치에서 보기를 이동하면 활동 표시줄에 새 아이콘이나 패널에 새 탭을 만들 수 있습니다. 이렇게 새로 만든 보기 컨테이너에 무엇이 포함되어 있는지 쉽게 이해할 수 있도록 로직을 개선했습니다.

이제 사용자 지정 컨테이너가 있을 때 첫 번째 표시되는 보기에서 제목과 아이콘을 상속합니다. 이를 통해 보기를 재정렬하여 변경할 수 있습니다. 빌트인 또는 확장에서 만든 컨테이너의 경우 가능한 한 오랫동안 이 아이콘을 유지하려고 합니다. 아래는 새 보기가 보기 컨테이너 상단에 배치되었을 때 해당 아이콘과 제목이 업데이트되는 모습입니다.

Dynamic icons and titles

마지막으로, 사용자 지정 컨테이너를 포함된 모든 보기를 한 번에 이동할 수 있습니다. 아래 짧은 동영상은 터미널 및 출력 보기 조합을 활동 표시줄로 끌어오는 것을 보여줍니다.

Moving whole View Containers

확장 프로그램 기여

원격 개발

컨테이너, 원격 머신 또는 Linux용 Windows 하위 시스템(WSL)을 전체 기능 개발 환경으로 사용할 수 있는 원격 개발 확장에 대한 작업이 계속 진행 중입니다.

1.45의 주요 기능은 다음과 같습니다.

  • 개발 컨테이너: 컨테이너 구성 추천.
  • 개발 컨테이너: WSL 2 Docker 및 Podman 엔진 지원.
  • 개발 컨테이너: 로컬 및 컨테이너 폴더에 대한 새 devcontainer.json 변수.

원격 개발 릴리스 노트에서 새 확장 기능 및 버그 수정을 확인할 수 있습니다. Remote Development release notes.

GitHub Pull Requests 및 Issues

이전 "GitHub Pull Requests"로 명명되었던 GitHub Pull Requests and Issues 확장은 1년 넘게 VS Code 내에서 풀 리퀘스트를 관리하고 검토할 수 있도록 해왔습니다. 이제 이 확장은 GitHub 이슈에 대한 지원을 포함하도록 확장되었습니다.

이슈 지원에는 다음이 포함됩니다.

  • #-참조된 이슈 및 @-언급된 사용자에 대한 호버.
  • 이슈 및 사용자에 대한 인라인 완성 제안.
  • 사용자 지정 쿼리를 사용할 수 있는 이슈 보기.
  • 이슈 작업을 시작하는 액션으로, 브랜치를 생성하고 커밋 메시지를 채웁니다.

새로운 저장소 지원도 있습니다.

아래 짧은 동영상은 새 비공개 GitHub 저장소에 게시하는 과정을 보여주며, 파일이 성공적으로 업로드된 후 GitHub에서 해당 저장소를 찾아볼 수 있는 옵션을 제공합니다.

Publish repository

더 자세한 정보는 최근 GitHub 이슈 통합 블로그 게시물과 GitHub 사용 문서를 읽어보세요.

GitHub 이슈 노트북

VS Code 팀은 노트북에 대한 네이티브 지원을 작업 중입니다. 요즘 가장 많이 사용되는 노트북은 Jupyter 노트북이며, 이를 조사하면서 편향되지 않고 다양한 스타일의 노트북을 지원하는 노트북 솔루션을 구축할 방법을 모색하기 시작했습니다.

이러한 노트북 중 하나는 GitHub 이슈 노트북 확장으로, 이슈 및 풀 리퀘스트 검색을 관리하고 결과를 인라인으로 렌더링할 수 있습니다.

GitHub Issue Notebook

이 확장은 아직 개발 중이며 VS Code Insider에서만 작동하지만, 이를 통해 노트북을 직접 경험하고 피드백을 제공할 수 있습니다.

확장 프로그램 작성

편집기 탭에 대한 새 테마 색상

워크벤치 편집기 탭을 추가로 테마화하기 위해 새 색상이 추가되었습니다.

  • tab.unfocusedInactiveBackground: 포커스가 없는 그룹의 비활성 탭 배경색
  • tab.hoverForeground: 호버 시 탭 전경색
  • tab.unfocusedHoverForeground: 포커스가 없는 그룹에서 호버 시 탭 전경색

편집기 제목 테두리에 대한 새 테마 색상

기존 색상 editorGroupHeader.tabsBorder는 편집기 탭 아래, 탐색 경로 위에 테두리를 렌더링하도록 변경되었습니다. 새 색상 editorGroupHeader.border를 사용하면 편집기 그룹 헤더 아래(예: 탐색 경로가 활성화된 경우 아래)에 테두리를 렌더링하여 editorGroupHeader.tabsBorder의 이전 동작을 복원할 수 있습니다.

vscode NPM 모듈의 사용 중단 및 보관

2019년 6월, event-stream 사건을 계기로 vscode 모듈을 @types/vscodevscode-test분할했습니다. 오늘날 minimist에 대한 보안 경고는 여전히 vscode에 종속된 확장에 대한 보안 경고를 야기했으며, vscodemocha@5.2.0, 따라서 minimist@0.0.8에 종속됩니다. 불행히도 mocha@5.2.0은 더 이상 업데이트되지 않으며 새 mocha 버전으로 업그레이드하면 기존 기능이 손상될 수 있습니다.

불필요한 종속성을 제거한 vscode의 새 버전을 게시했습니다. 또한 리포지토리를 보관하고 NPM에서 vscode 모듈을 사용 중단했습니다. @types/vscodevscode-test마이그레이션하세요.

새로운 완성 항목 종류

vscode.CompletionItemKind에 이슈와 사용자를 나타내는 두 가지 새로운 항목이 추가되었습니다. 예를 들어 TODO 태그를 추가할 때 사용자 이름을 제안하는 데 사용할 수 있습니다.

URI 작업

vscode.Uri.joinPath 유틸리티를 추가했습니다. 기존 URI에 경로 세그먼트를 연결하여 새 URI를 만드는 팩토리 함수입니다. Node.js의 path.join 유틸리티와 유사하지만 URI에 적용된다고 생각하면 됩니다.

확장의 경우 VS Code는 확장이 설치된 URI를 Extension.extensionUriExtensionContext.extensionUri를 통해 노출합니다. 연결 유틸리티를 사용하면 이제 확장 리소스에 대한 URI를 만들 수 있습니다.

예를 들어,

const fileUri = vscode.Uri.joinPath(context.extensionUri, './file.png');
const bytes = await vscode.workspace.fs.readFile(fileUri);

debug/callstack/컨텍스트 메뉴 인라인 그룹

VS Code는 이제 debug/callstack/context 메뉴 inline 그룹에 대한 기여를 지원합니다. 이 그룹에 기여된 명령은 사용자가 디버그 세션 요소를 호버할 때 호출 스택에 인라인으로 렌더링됩니다.

Call Stack inline contribution

새로운 디버그 테마 색상

디버그 보기를 스타일링하기 위한 새 색상이 있습니다.

  • debugView.exceptionLabelForeground: 디버거가 예외에서 중단될 때 호출 스택 보기에서 표시되는 레이블의 전경색
  • debugView.exceptionLabelBackground: 디버거가 예외에서 중단될 때 호출 스택 보기에서 표시되는 레이블의 배경색
  • debugView.stateLabelForeground: 호출 스택 보기에서 현재 세션 또는 스레드의 상태를 표시하는 레이블의 전경색
  • debugView.stateLabelBackground: 호출 스택 보기에서 현재 세션 또는 스레드의 상태를 표시하는 레이블의 배경색
  • debugView.valueChangedHighlight: 디버그 보기(예: 변수 보기)에서 값 변경을 강조 표시하는 데 사용되는 색상
  • debugTokenExpression.name: 디버그 보기(예: 변수 또는 감시 보기)에서 표시되는 토큰 이름의 전경색
  • debugTokenExpression.value: 디버그 보기에서 토큰 값의 전경색
  • debugTokenExpression.string: 디버그 보기에서 문자열의 전경색
  • debugTokenExpression.boolean: 디버그 보기에서 부울의 전경색
  • debugTokenExpression.number: 디버그 보기에서 숫자의 전경색
  • debugTokenExpression.error: 디버그 보기에서 표현식 오류의 전경색

소스 제어 관리

리소스 열기 명령에 대한 새 preserveFocus 인자

SourceControlResourceState.command 명령을 호출할 때 추가 preserveFocus: boolean 인자가 전달되어 확장 작성자가 더 나은 사용자 경험을 제공할 수 있습니다.

입력 텍스트 mime 유형

소스 제어 입력 텍스트에는 이제 전용 mime 유형이 있습니다: text/x-scm-input.

입력 상자 가시성 제어

확장은 이제 SourceControlInputBox.visible 속성을 사용하여 각 저장소에 대한 소스 제어 입력 상자의 가시성을 제어할 수 있습니다.

Git

원격 소스 제공자

Git 확장 API는 이제 다른 확장이 Git: 복제 명령에 참여하기 위해 원격 소스 제공을 허용합니다.

다음은 GitHub Pull Requests and Issues 확장의 예시입니다.

Clone from GitHub

자격 증명 제공자

Git 확장 API는 확장 기능이 워크벤치 및 통합 터미널 내에서 HTTPS Git 리포지토리에 대해 호출되는 Git 명령을 인증하기 위해 인증 자격 증명 제공할 수 있도록 확장되었습니다.

SignatureInformation.activeParameter

SignatureInformation의 새 activeParameter 속성을 사용하면 각 시그니처에 대한 활성 매개변수를 개별적으로 지정할 수 있습니다. 제공되는 경우, 이는 최상위 SignatureHelp.activeParameter 속성을 재정의합니다.

EventEmitter에 대한 엄격한 null 검사 수정

VS Code 1.44 이하에서는 EventEmitter.fire에 대한 인자가 선택 사항이었습니다.

// Valid in VS Code 1.44
const emitter = new EventEmitter<number>();

emitter.event((x: number) => console.log(x));

// Calling fire with no argument was valid but resulted in the `x` above being `undefined`
emitter.fire();

이는 엄격한 null 검사를 위반했지만 컴파일 오류를 일으키지는 않았습니다.

VS Code 1.45에서는 fire에 이제 인수가 필요합니다. 소스 코드에서 여전히 인자 없이 .fire()를 호출하려면 new EventEmitter<void>를 사용하세요.

언어 서버 프로토콜

사양의 3.16 버전에 대한 작업이 시작되었습니다. 첫 번째 단계로, 호출 계층 지원이 제안 상태에서 벗어났습니다. 3.16 사양은 아직 최종이 아니며 피드백에 따라 변경될 수 있다는 점에 유의하십시오.

제안된 확장 API

모든 마일스톤에는 새로운 제안 API가 포함되며 확장 작성자는 이를 사용해 볼 수 있습니다. 언제나처럼 여러분의 피드백을 기다립니다. 제안 API를 사용해 보려면 다음을 수행하세요.

  • 제안된 API는 자주 변경되므로 Insiders를 사용해야 합니다.
  • 확장의 package.json 파일에 이 줄이 있어야 합니다: "enableProposedApi": true.
  • vscode.proposed.d.ts 파일의 최신 버전을 프로젝트 소스 위치로 복사합니다.

제안 API를 사용하는 확장은 게시할 수 없습니다. 다음 릴리스에서 호환성이 깨지는 변경이 있을 수 있으며 기존 확장을 손상시키고 싶지 않습니다.

터미널 환경에 기여

지난달에 도입된 이 새로운 제안 API를 통해 확장 작성자는 터미널 환경에 기여할 수 있습니다. 이번 달에는 주로 이 기능 위에 UI를 적용하고 다듬는 데 중점을 두었습니다. 이제 터미널에 "오래된" 환경이 있을 때 경고 아이콘이 표시되며, 이는 변경될 내용을 설명하는 풍부한 호버와 편리한 터미널 다시 시작 액션을 포함합니다. 변경 사항이 활성화되었지만 기본적으로 비활성화된 경우 정보 아이콘도 사용할 수 있습니다.

Terminal stale environment warning

디버그 구성 동적 제공

작업 영역 또는 프로젝트의 정보를 기반으로 디버그 구성을 동적으로 추가할 수 있는 방법을 제공하도록 디버깅 확장 API를 업데이트했습니다. 이러한 디버그 구성은 launch.json의 정적 디버그 구성이 표시되는 UI 위치와 동일한 위치에 표시됩니다.

이 릴리스에서는 동적 디버그 구성이 디버그 보기의 구성 드롭다운 및 디버그 선택 및 시작 빠른 선택에 표시됩니다. 향후 릴리스에서는 "환영" 보기에도 표시하는 것을 고려하고 있습니다.

새 API는 기존 DebugConfigurationProviderprovideDebugConfigurations 메서드를 기반으로 합니다. 이 릴리스까지 provideDebugConfigurations는 VS Code에서 새로 생성된 launch.json으로 복사될 초기 "정적" 디버그 구성을 제공하기 위해 호출되었습니다. 새 API를 사용하면 DebugConfigurationProvider는 이제 새 옵션 인수인 triggerKind 인수에 DebugConfigurationProviderTriggerKind.Dynamic 값을 전달하여 "동적" 사례에 대해 vscode.debug.registerDebugConfigurationProvider를 통해 등록할 수 있습니다. 이 새 등록을 통해 VS Code는 UI에 모든 디버그 구성 목록이 표시되기 직전에 provideDebugConfigurations 메서드를 호출합니다.

이 새 API를 사용하는 확장을 제시간에 활성화하려면 새로운 활성화 이벤트 onDebugDynamicConfigurations:<debug type>이 도입되었습니다. <debug type>은 필수이며 동적 디버그 구성이 지정된 디버거를 나타냅니다.

Mock Debug에서 사용 예시를 여기서 찾을 수 있습니다.

바이너리 사용자 지정 편집기 API

안정화를 위해 제안된 바이너리 사용자 지정 편집기 API를 다시 작업하는 데 이 반복을 사용했습니다. 기억을 되살리기 위해 사용자 지정 편집기는 확장이 VS Code의 일반 텍스트 편집기 대신 자체 편집기 사용자 인터페이스를 제공할 수 있도록 합니다. 텍스트 기반 파일에 대한 사용자 지정 편집기 지원은 이미 안정화되었습니다. 제안된 API는 사용자 지정 편집기를 이미지 또는 16진수 덤프와 같은 바이너리 파일 형식으로 확장합니다.

A custom editor for binary files

다음 반복에서 최종 확정을 목표로 이 API에 대한 피드백을 받고자 합니다. 바이너리 파일에 대한 사용자 지정 편집기의 구현 예시를 검토하려면 사용자 지정 편집기 확장 샘플을 확인하세요. 사용자 지정 편집기 API 설명서도 이제 바이너리 파일을 위한 사용자 지정 편집기를 다룹니다.

이 API가 사용에 적합한지 또는 사용자 지정 편집기를 구현하는 데 문제가 있는지 알려주세요.

엔지니어링

네이티브 이터레이터

성능 향상을 위해 네이티브 ES6 이터레이터를 사용하고 있습니다. 자세한 내용은 이슈 #94540에서 찾을 수 있습니다.

컴파일 데몬

deemon 유틸리티 덕분에 이제 자체 호스팅 컴파일 작업을 백그라운드 프로세스로 실행합니다. VS Code를 다시 시작해도 계속 실행됩니다.

자동 이슈 분류

이슈 분류 흐름을 GitHub Actions로 전환하는 작업을 계속하여 자동 이슈 분류를 위한 Actions를 만들었습니다. 이러한 Actions는 모든 이슈를 자동으로 다운로드하고 머신러닝 모델을 생성하여 예약된 기준으로 이슈를 기능 영역으로 분류합니다. 모든 Actions의 전체 구현은 GitHub Triage Actions 리포지토리에 있습니다.

새로운 문서

Docker Compose

Microsoft Docker 확장이 프로젝트에 Docker Compose 파일을 추가하여 여러 Docker 컨테이너를 쉽게 작업하는 데 어떻게 도움이 되는지 설명하는 새로운 Docker Compose 주제가 있습니다.

Java 주제

Java 주제가 업데이트되었으며, Java 확장을 사용하여 Java 소스 코드의 LintingRefactoring에 대한 새 주제가 포함되었습니다.

GitHub

확장된 GitHub 통합으로, VS Code 내에서 GitHub를 사용하는 방법을 보여주는 새로운 GitHub 사용 주제가 있습니다.

주요 수정 사항

  • 46886: 디버그 사이드바에서 중단점 섹션 크기 조정 불가
  • 85344: Firefox에서 VSCode의 링크 클릭 시 충돌 발생.
  • 86425: 통합 터미널 너비가 너무 좁음
  • 90714: 디버그 콘솔 글꼴 크기 설정을 입력 필드에 적용
  • 90734: 외부 터미널로 Windows Terminal 사용 시 작업 공간 디렉터리에서 시작되지 않음
  • 93973: [SSH] 사이드바에서 자동 표시 작동 안 함
  • 94574: 가운데 정렬 레이아웃: diff 편집기 표시 시 전체 너비 사용
  • 94982: Bash 디버깅이 버전 1.44.0에서 시작되지 않음
  • 95108: serverReadyAction debugWithChrome 갑자기 작동 중지
  • 95319: getWordRangeAtPosition이 확장 호스트를 동결시킬 수 있음

감사합니다

마지막으로, VS Code를 더욱 발전시키는 데 도움을 준 다음 분들께 진심으로 감사드립니다.

이슈 추적에 대한 기여

vscode 기여

vscode-json-languageservice 기여

vscode-html-languageservice에 대한 기여

language-server-protocol 기여

debug-adapter-protocol에 기여

vscode-generator-code에 대한 기여

vscode-textmate에 기여

vscode-vsce 기여

localization 기여

800명 이상의 Cloud + AI Localization 커뮤니티 회원이 Microsoft Localization Community Platform(MLCP)을 사용하고 있으며, Visual Studio Code에 170명 정도의 활성 기여자가 있습니다. 새로운 번역 제공, 번역 투표, 프로세스 개선 제안 등 여러분의 기여에 감사드립니다.

다음은 기여자의 스냅샷입니다. 프로젝트에 대한 자세한 내용과 기여자 이름 목록을 보려면 프로젝트 사이트(https://aka.ms/vscodeloc)를 방문하십시오.

  • 중국어 (간체, 중국) Tingting Yi, Yizhi Gu, Charles Dong, Justin Liu, Joel Yang, Tony Xia, 朱知阳, meng shao, 普鲁文, paul cheung, 张锐, Yiting Zhu, Nong Zhichao, Liam Kennedy, 武 健, Zhao Liguo, 宁 倬, Bochen Wang, 一斤瓜子, 顺 谭, 云 何, Yun Liu, yungkei fan, 杨 越鹏.
  • 중국어 (번체, 대만) 船長, Winnie Lin, 予 恆, TingWen Su.
  • 체코어 David Knieradl.
  • 덴마크어 (덴마크) Javad Shafique, Lasse Stilvang.
  • 영어 (영국) Martin Littlecott, Oren Recht, Faris Ansari.
  • 핀란드어 (핀란드) Teemu Sirkiä.
  • 프랑스어 (프랑스) Antoine Griffard, Thierry DEMAN-BARCELÒ, Rodolphe NOEL, Nathan Bonnemains.
  • 히브리어 (이스라엘) Chayim Refael Friedman, Asaf Amitai.
  • 헝가리어 Bucsai László.
  • 인도네시아어 (인도네시아) Gerry Surya, Laurensius Dede Suhardiman.
  • 이탈리아어 (이탈리아) Alessandro Alpi, Riccardo Cappello.
  • 일본어 (일본) Ikko Ashimine, Aya Tokura, Takayuki Fuwa, ちゃん きさらぎ, 住吉 貴志, Koichi Makino, Yoshihisa Ozaki, TENMYO Masakazu.
  • 한국어 (한국) 고경희, 허준.
  • 노르웨이어 (노르웨이) Torbjørn Viem Ness.
  • 폴란드어 (폴란드) Makabeus Orban, Kacper Łakomski, Karol Szapsza.
  • 포르투갈어 (브라질) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes.
  • 포르투갈어 (포르투갈) Pedro Filipe, António Pereira.
  • 러시아어 (러시아) Andrey Veselov, Vadim Svitkin, Минаков Антон.
  • 스페인어 (스페인, 국제 정렬) Sifredo Da Silva, Ariel Costas Guerrero, David Roa, Abdón Rodríguez P., Luis Manuel, Carlos A. Echeverri V, A. Jesus Flores A., Ricardo Estrada Rdez, Alfonso Jesus Flores.
  • 스웨덴어 (스웨덴) Per Ragnar Edin.
  • 타밀어 (인도) krishnakoumar c.
  • 터키어 (튀르키예) Umut Can Alparslan, Mehmet Yönügül.
  • 우크라이나어 (우크라이나) Nikita Potapenko, igor oleynik.
  • 베트남어 (베트남) Hieu Nguyen Trung, LN Quang.

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