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

2020년 3월 (버전 1.44)

업데이트 1.44.1: 이 업데이트는 다음 보안 이슈를 해결합니다.

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

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


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

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

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

접근성

이번 마일스톤에서 커뮤니티로부터 많은 피드백을 받아 접근성 이슈를 식별하고 해결하는 데 도움이 되었습니다.

  • Diff 보기가 더욱 접근 가능해졌습니다. F7⇧F7 (Windows, Linux Shift+F7)를 사용하여 접근 가능한 Diff 뷰어에서 변경 사항을 탐색하고, **선택한 범위 스테이징/언스테이징/되돌리기** 명령을 사용하여 현재 변경 사항을 스테이징, 언스테이징 또는 되돌릴 수 있습니다.
  • 위젯 전반에 걸쳐 더 나은 역할이 사용됩니다. 제안 위젯 및 빠른 선택에는 listbox 역할이 사용되고, 정적 목록에는 list, 환영 보기 및 Markdown 미리 보기와 같은 읽기 전용 콘텐츠에는 document 역할이 사용됩니다.
  • 빠른 선택 위젯의 동작을 조정했습니다.
  • 현재 줄 CodeLens가 **현재 줄 코드 렌즈 명령 표시** 명령으로 빠른 선택에 표시될 수 있습니다.

타임라인 보기

타임라인 보기가 이제 미리 보기에서 벗어나 기본적으로 활성화되었습니다. 이는 파일에 대한 시계열 이벤트(예: Git 커밋, 파일 저장, 테스트 실행 등)를 시각화하는 통합 보기입니다. 타임라인 보기는 기본적으로 현재 활성 편집기의 타임라인을 표시하도록 자동으로 업데이트됩니다. 이 기본 동작은 보기 도구 모음의 눈 아이콘을 토글하여 제어할 수 있습니다. 또한 다른 보기와 유사하게 타임라인 보기도 입력하면서 찾기 또는 필터링을 지원합니다.

타임라인 보기는 파일 탐색기 하단에 기본적으로 축소됩니다. **타임라인** 구분 기호를 선택하면 타임라인 보기가 확장됩니다.

Collapsed Timeline view

이번 릴리스에서는 기본 Git 확장 기능이 지정된 파일의 Git 커밋 기록을 제공하는 타임라인 소스를 제공합니다. 커밋을 선택하면 해당 커밋으로 도입된 변경 사항의 diff 보기가 열립니다. 컨텍스트 메뉴는 **커밋 ID 복사** 및 **커밋 메시지 복사** 명령을 제공합니다. 선택한 파일의 타임라인을 빠르게 표시하기 위한 파일 탐색기 컨텍스트 메뉴에 새로운 **타임라인 열기** 명령도 있습니다.

작동 중인 타임라인 보기입니다.

Timeline view

테마: Dark Amethyst

확장 프로그램에서 추가 타임라인 소스를 제공할 수 있습니다(API는 아직 제안 단계이지만). 이러한 소스는 통합 타임라인 보기에 표시됩니다. 확장 프로그램은 타임라인 보기 및 개별 타임라인 항목에 대한 메뉴 항목도 제공할 수 있습니다. 또한 보기에서 포함하려는 소스를 쉽게 선택할 수 있습니다.

워크벤치

빠른 열기 재작성

빠른 열기(⌘P (Windows, Linux Ctrl+P)) 컨트롤은 이전 버전의 트리 위젯을 사용하고 있었으며, 이번 반복에서는 VS Code UI의 나머지 부분에서 이미 사용 중인 최신 목록 컨트롤을 사용하도록 마이그레이션되었습니다. 모든 명령이 이전과 동일하게 작동하므로 기능적으로는 차이를 알 수 없을 것입니다.

유용하다고 생각하실 수 있는 몇 가지 기능을 추가할 기회를 가졌습니다.

Quick Open

파일에서 심볼로 탐색

이제 @를 입력하여 파일 결과의 심볼로 계속 탐색할 수 있습니다. 현재 선택된 파일의 경우 모든 심볼이 표시되고 편집기가 백그라운드에서 열려 활성 심볼이 표시됩니다. 아래 동영상은 @ 뒤에 :를 붙여 심볼을 카테고리별로 그룹화할 수 있음을 보여줍니다.

Quick Open navigate to symbols

공백으로 구분하여 결과 필터링

파일 검색 결과가 너무 많이 나오는 경우, 공백을 입력한 후 더 많은 검색 패턴을 추가할 수 있습니다. 예를 들어, <파일 이름> <폴더 이름>을 차례로 입력하여 폴더별로 결과를 좁힐 수 있습니다.

Quick Open filtering

참고: 이는 편집기(⇧⌘O (Windows, Linux Ctrl+Shift+O)) 및 작업 공간(⌘T (Windows, Linux Ctrl+T)) 심볼 선택기에서도 작동합니다. 공백 문자 뒤의 모든 텍스트는 해당 심볼의 컨테이너로 필터링하는 데 사용됩니다.

공급자 전환 시 입력 유지

빠른 열기를 visible 상태로 유지하고 다른 공급자로 전환하는 경우(예: 파일 검색에서 심볼 검색으로), VS Code는 입력된 필터를 적용하여 새 공급자에 사용합니다. 이를 통해 이전에 파일 검색에 사용했던 입력을 심볼 검색에 대해 빠르게 다시 사용할 수 있습니다.

편집기 기록을 최근 사용한 항목별로 정렬

새로운 설정 "search.quickOpen.history.filterSortOrder": "recency"를 사용하면 검색을 시작할 때도 편집기 기록을 가장 최근에 열린 항목별로 정렬할 수 있습니다. 기본적으로 편집기 기록 결과는 사용된 필터 패턴을 기반으로 관련성별로 정렬됩니다.

편집기를 옆으로 열기 위한 새 명령

새 명령 workbench.action.alternativeAcceptSelectedQuickOpenItem을 사용하면 빠른 열기에서 파일을 열거나 심볼을 옆으로 여는 추가 키보드 바로 가기를 추가할 수 있습니다. 기본적으로 Ctrl+Enter(macOS: Cmd+Enter)는 현재 편집기 그룹이 아닌 새 편집기 그룹에서 파일을 옆으로 엽니다.

확장 팩 표시 개선

확장 프로그램 보기에서 확장 팩을 식별하기 위해 이제 확장 팩에 포함된 확장 프로그램 수를 표시하는 숫자 배지가 있습니다.

Extension Pack number of extensions badge

테마: GitHub Sharp with Customizations

확장 프로그램 세부 정보 페이지에 이제 확장 팩에 번들로 제공되는 모든 확장 프로그램이 표시됩니다.

Extension Pack details page showing bundled extensions

테마: GitHub Sharp with Customizations

편집기 탭 스크롤 막대 높이 조정

새 설정 workbench.editor.titleScrollbarSizing을 사용하면 편집기 탭 및 브레드크럼의 스크롤 막대 크기를 늘릴 수 있습니다. 이렇게 하면 열린 편집기의 긴 목록을 더 쉽게 스크롤할 수 있습니다.

large로 구성하여 더 큰 스크롤 막대 사용

Large scrollbar

파일 탐색기에서 숨겨진 파일 표시

파일이 숨겨져 있고(files.exclude 설정을 통해) 편집기에서 열려 있고 보이는 경우, 해당 파일은 파일 탐색기에 부모 체인과 함께 표시됩니다. 파일이 편집기 영역에 보이는 동안 해당 파일과 부모는 파일 탐색기에서 흐리게 표시됩니다.

보기: 다른 이름으로 열기

새로운 **보기: 다른 이름으로 열기** 명령을 사용하면 현재 활성 파일을 다른 사용자 지정 편집기를 사용하여 다시 열 수 있습니다.

Using the Reopen With command with the custom editor example extension

이 명령을 사용하여 VS Code의 표준 텍스트 편집기와 사용자 지정 편집기 간에 전환하거나 리소스에 대한 여러 사용자 지정 편집기 간에 전환할 수 있습니다.

workbench.editorAssociations 설정

또한 사용자 지정 편집기의 경우, 새로운 workbench.editorAssociations 설정을 사용하여 특정 리소스에 사용되는 편집기를 구성할 수 있습니다.

아래 예는 확장 프로그램 샘플의 예제 사용자 지정 텍스트 편집기를 사용하여 .catScratch로 끝나는 모든 파일을 열도록 구성합니다.

"workbench.editorAssociations": [
  {
    "viewType": "catCustoms.catScratch",
    "filenamePattern": "*.catScratch"
  }
]

보기 진행률이 이제 보기에 표시됩니다.

사용자 지정 보기의 진행률 표시에 대한 표시 방식이 보기 컨테이너 상단이 아닌 각 보기 자체에 표시되도록 변경했습니다. 이렇게 하면 장기 실행 작업과 진행률 간의 직접적인 연결이 가능해집니다. 확장 프로그램이 보기에 사용자 지정 진행률을 표시할 수 있는 새 API 옵션도 있습니다.

여기에서 GitLens 확장 보기의 진행률 표시를 볼 수 있습니다.

View progress indication

새 기본 고정폭 글꼴

VS Code UI에서 사용되는 고정폭 글꼴을 업데이트했습니다.

.mac { --monaco-monospace-font: "SF Mono", Monaco, Menlo, Courier, monospace; }
.windows { --monaco-monospace-font: Consolas, "Courier New", monospace; }
.linux { --monaco-monospace-font: "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace; }

이 변경 사항은 편집기의 글꼴 선택에 영향을 미치지 않습니다.

편집기

파일 재열기 시 실행 취소 스택 유지

이제 VS Code는 파일이 닫힐 때 해당 파일의 **실행 취소/다시 실행** 스택을 유지합니다. 파일을 다시 열 때, 닫은 이후 내용이 변경되지 않았다면 실행 취소/다시 실행 스택이 복원됩니다.

이는 workbench.editor.limit.value 설정을 사용하여 열린 편집기 수를 제한하거나 실수로 작업 중인 파일을 닫은 경우 매우 유용합니다.

저장 시 코드 액션에 대한 명시적 순서 지정

이제 editor.codeActionsOnSave를 순서대로 실행할 코드 액션 배열로 설정할 수 있습니다. 이를 사용하여 특정 코드 액션이 충돌할 수 있는 다른 코드 액션보다 항상 먼저 또는 나중에 실행되도록 보장할 수 있습니다.

다음 editor.codeActionsOnSave는 **가져오기 정리**가 완료된 후 항상 **가져오기 정리** 다음 **전체 수정**을 실행합니다.

"editor.codeActionsOnSave": [
    "source.organizeImports",
    "source.fixAll"
]

다음 찾기 일치에 editor.wordSeparators 사용

다음 찾기 일치에 선택 영역 추가(⌘D (Windows, Linux Ctrl+D)) 명령이 이제 editor.wordSeparators 설정을 존중합니다. 이전에는 이 명령이 현재 파일의 언어로 정의된 단어 정의를 사용했습니다.

디버깅

호출 스택 보기 개선

CALL STACK 보기는 다양한 종류의 객체(세션, 프로세스, 스레드, 스택 프레임, 구분 요소)를 표시하고 다양한 유형에 대해 다양한 동작을 제공하기 때문에 복잡한 보기입니다. 객체 유형을 더 쉽게 구별하고 지원되는 상호 작용을 이해할 수 있도록 일부 시각적 개선을 시작했습니다.

  • 디버그 세션에 이제 아이콘이 표시됩니다.
  • 클릭 가능한 요소는 링크 색상을 사용합니다.
  • 더 작은 구분선 및 프레젠테이션 요소.

Call Stack

새로운 디버그 콘솔 아이콘

디버그 콘솔에 대한 새로운 아이콘을 도입했으며, 디버그 콘솔 보기가 패널에서 이동될 때 활동 표시줄에서도 사용합니다.

Debug Console icon

디버그 확장을 위한 진행률 피드백 UI

VS Code는 지난 마일스톤에서 제안된 디버그 어댑터 프로토콜(DAP)의 "진행률 이벤트"를 지원합니다. 진행률 이벤트를 통해 디버그 확장은 장기 실행 작업에 대한 사용자 피드백을 제공할 수 있습니다.

VS Code 디버깅 UI는 두 곳에서 진행률 피드백을 표시합니다.

  • 디버그 보기 상단의 진행률 표시줄로.
  • "무음 알림"으로, 이는 상태 표시줄에 진행률이 "무음으로"(사용자를 방해하지 않고) 표시되며 클릭하여 알림으로 열 수 있습니다. 알림은 더 자세한 정보를 표시하고(작업이 취소를 지원하는 경우) 해당 장기 실행 작업을 취소할 수 있습니다.

짧은 작업의 깜박임을 방지하기 위해 진행률 UI는 0.5초 지연 후에 시작됩니다.

다음 동영상은 Mock Debug(현재까지 유일하게 지원되는 디버그 확장 프로그램)에서 새로운 진행률 UI가 (시뮬레이션된) 장기 실행 작업을 처리하는 것을 보여줍니다. 다른 디버그 확장 프로그램들도 곧 진행률 지원을 채택할 것으로 예상합니다.

Debug progress UI

디버그 콘솔에서의 코드 완성 선택

지난 마일스톤에서 디버그 어댑터 프로토콜의 "완성" 요청에 선택 제어를 추가했습니다. 이번 릴리스에서는 VS Code가 프로토콜 추가를 완전히 지원하며, 디버그 확장은 완성 항목이 삽입된 후 선택(또는 삽입 지점)을 조정할 수 있습니다.

통합 터미널

메뉴 모음 바로 가기가 터미널을 건너뛰도록 허용

새 설정 terminal.integrated.allowMenubarMnemonics가 활성화되면, Alt를 사용하는 모든 키 입력은 터미널을 건너뛰고 VS Code의 키 바인딩 관리자에서 처리되므로, 터미널 내 Alt 핫키를 희생하는 대신 모든 메뉴 바로 가기가 작동합니다. 이 설정은 기본적으로 비활성화되어 있습니다.

언어

JavaScript의 자동 가져오기 스타일

새로운 javascript.preferences.importModuleSpecifierEnding 설정을 사용하면 VS Code의 자동 가져오기에서 사용하는 가져오기 스타일을 제어할 수 있습니다. 이는 네이티브 ES6 모듈을 지원하는 브라우저와 같은 플랫폼에서 코드를 작성하는 경우 유용할 수 있습니다.

가능한 값은 다음과 같습니다.

  • auto - 기본값입니다. 프로젝트의 jsconfig를 사용하여 사용할 가져오기 스타일을 결정합니다.
  • minimal - Node.js 스타일 가져오기를 사용합니다. src/component/index.js에 대한 가져오기를 src/component로 단축합니다.
  • index - 경로의 index 부분도 포함합니다. src/component/index.jssrc/component/index로 단축합니다.
  • js - 파일 확장자(.js)를 포함한 전체 경로를 사용합니다.

작업

작업 빠른 열기 속도 향상

이전에는 작업 빠른 열기가 모든 작업 제공 확장 프로그램에서 모든 작업을 가져온 후에 선택할 작업 목록을 표시했습니다. 이제 VS Code는 빠른 열기 드롭다운을 표시하기 전에 추가 확장 작업이 있는지 가져오지 않으므로 훨씬 빠릅니다. 확장 프로그램에서 제공하는 작업은 요청할 때만 가져오므로 확장 프로그램 호스트를 해제합니다.

아래 TypeScript에서 제공하는 tsc 작업은 사용자가 **typescript** 확장 프로그램을 선택한 후에만 가져옵니다.

Task Quick Pick

테마: One Dark Pro

미리 보기 기능

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

설정 동기화

지난 몇 달 동안 여러 컴퓨터에서 VS Code 설정, 확장 프로그램 및 키보드 바로 가기를 동기화하는 기능을 지원하기 위해 노력했으며, 이 기능은 Insiders 릴리스에서 미리 볼 수 있습니다.

이번 마일스톤에서는 사용자 스니펫 및 추가 UI 상태 동기화를 추가했습니다.

Settings Sync configuration

테마: GitHub Sharp with Customizations

현재 동기화되는 UI 상태는 다음과 같습니다.

  • 표시 언어
  • 활동 표시줄 항목
  • 패널 항목
  • 보기 레이아웃 및 가시성
  • 최근 사용한 명령
  • "다시 표시 안 함" 알림

참고: 현재는 사용자 언어 스니펫만 동기화됩니다. 전역 스니펫 지원은 다음 마일스톤에 추가될 예정입니다.

데이터 복원 및 문제 해결 지원을 위한 원격 및 로컬 동기화 백업 보기도 추가했습니다. **환경 설정 동기화: 원격 백업 보기** 및 **환경 설정 동기화: 로컬 백업 보기** 명령을 사용하여 이러한 보기에 액세스할 수 있습니다.

Settings Sync backups view

테마: GitHub Sharp with Customizations

자세한 내용은 설정 동기화 설명서를 참조하십시오.

계정 관리

인증 공급자를 제공하는 확장 프로그램의 계정이 이제 설정 기어 위의 새 **계정** 컨텍스트 메뉴에 표시됩니다. 현재 로그인된 모든 계정을 보고, 로그아웃하고, 신뢰하는 확장 프로그램을 관리할 수 있습니다. 여기서 Microsoft 계정으로 로그인하는 것은 설정 동기화를 시작하는 또 다른 방법입니다.

Accounts context menu

테마: Pop Light (사용자 지정 포함)

새 JavaScript 디버거

이번 달에는 새로운 JavaScript 디버거 개발을 계속 진행했습니다. Insiders에는 기본적으로 설치되며, VS Code Stable에서는 Marketplace에서 설치할 수 있습니다. debug.javascript.usePreview 설정을 활성화하여 기존 실행 구성을 사용하여 시작할 수 있습니다. 이번 달에 추가된 몇 가지 새로운 기능은 다음과 같습니다.

디버그 터미널의 링크 처리

디버그 터미널(**디버그: JavaScript 디버그 터미널 만들기**)을 사용하여 Node.js 프로세스를 자동으로 디버깅할 수 있습니다. 이제 디버거는 Cmd/Ctrl+Click으로 링크를 클릭할 때 브라우저 디버깅을 시작하기 위한 링크도 처리하며, 별도의 구성이 필요하지 않습니다.

Animation showing clicking on a link in the debug terminal, Chrome opening, and hitting a breakpoint

테마: Earthsong, 글꼴: Fira Code

Watch 및 디버그 콘솔에서 $returnValue 참조

호출 스택에서 사용 가능한 경우, 이제 디버그 콘솔 및 Watch 표현식에서 함수의 $returnValue를 참조할 수 있습니다.

Screenshot showing $returnValue being referenced in the Debug Console and Watch expression

TypeScript 3.9 베타 지원

이번 반복에서는 새로운 TypeScript 3.9 베타 기능에 대한 지원을 추가했습니다. TypeScript 3.9의 주요 기능은 다음과 같습니다.

  • // @ts-expect-error 지시문에 대한 제안.
  • 줄 바꿈 및 서식을 더 잘 유지하는 리팩터링.
  • JavaScript의 자동 가져오기는 이제 일반적인 JS 스타일 가져오기(require(...))를 추가할 수 있습니다.

TypeScript Nightly 확장 프로그램을 설치하여 지금 바로 새로운 TypeScript 3.9 기능을 사용해 볼 수 있습니다. 피드백을 공유하고 TypeScript 3.9 베타 버그가 발생하면 알려주시기 바랍니다!

보기 배치 유연성 증가

몇 번의 반복에 걸쳐 개별 보기를 이동할 수 있도록 레이아웃 유연성을 개선했습니다. 이번 반복에서는 기능을 추가했을 뿐만 아니라 경험도 개선했습니다.

새로운 드래그 앤 드롭 환경

활동 표시줄 아이콘, 패널 및 보기 내에서 사이드바 보기의 드래그 앤 드롭은 간단했지만 모호했습니다. 항목을 실제로 드롭할 때 정확히 어떤 일이 발생할지 알기 어려웠습니다. 새로운 환경은 명확성을 개선하고 그 과정에서 활성화되는 새로운 기능을 강조하는 것을 목표로 합니다.

아래에서는 사용자가 먼저 사이드바 내에서 보기를 재정렬하고, 패널의 탭을 재정렬하고, 활동 표시줄의 아이콘을 재정렬합니다.

New Drag and Drop experience

단일 패널의 여러 보기

이제 단일 패널에 여러 보기를 포함하여 가로 공간을 더 잘 활용할 수 있습니다. 일반적인 요청은 터미널과 문제 보기(Problems view)를 동시에 보는 것입니다. 이는 아래 그림과 같이 터미널을 문제 보기로 드래그하여 수행할 수 있습니다.

Terminal and Problems view side by side

새로운 사이드바 그룹 생성 및 패널 이동

이제 보기를 새 사이드바 그룹으로 이동하여 활동 표시줄에 새 아이콘 항목을 만들 수 있습니다. 기본 제공되는 패널도 예외가 아니며 이제 기존 사이드바 항목 또는 자체 항목으로 이동할 수 있습니다.

다음 동영상에서는 사용자가 터미널을 활동 표시줄로 드래그하여 터미널 아이콘을 만들고 사이드바에 터미널을 위한 공간을 확보하는 것을 보여줍니다. 다음으로, 사용자가 출력(Output)을 터미널 사이드바 안으로 드롭합니다. 마지막으로, 개요(Outline)를 탐색기(Explorer)에서 활동 표시줄로 이동하여 자체 사이드바 영역을 만듭니다.

Dragging views into the Activity Bar

패널에 보기 컨테이너 기여

이제 확장 프로그램이 패널에 직접 보기를 기여할 수 있도록 하는 데 필요한 모든 것이 갖춰졌습니다. 이는 오늘날 활동 표시줄과 마찬가지이며, 트리 보기 API 가이드에 설명되어 있습니다. 이 기능은 아직 미리 보기 단계이며 트리 보기 설명서에는 안정적인 것으로 간주될 때까지 이러한 변경 사항이 반영되지 않습니다. 그러나 사용해 보려면 설명서의 스니펫을 다음으로 업데이트하십시오.

"contributes": {
  "viewsContainers": {
    "panel": [
      {
        "id": "package-explorer",
        "title": "Package Explorer",
        "icon": "media/dep.svg"
      }
    ]
  }
}

보기 이동 명령

마지막으로, 키보드로 보기를 이동하고 레이아웃을 재설정하는 새로운 명령이 있습니다. **보기: 포커스된 보기 이동**(workbench.action.moveFocusedView) 명령이 업데이트되어 이번 반복의 새 기능을 지원합니다. **보기: 포커스된 보기 위치 재설정**(workbench.action.resetFocusedViewLocation) 명령은 개별 보기를 기본 위치로 다시 배치하기 위해 추가되었습니다.

패널 및 사용자 지정 보기에 대한 활동 표시줄 아이콘

유연한 레이아웃 도입으로, 기본 패널 보기가 활동 표시줄로 이동할 때 전용 아이콘이 있습니다. 여러 보기를 결합할 때 사용자 지정 보기에 대한 (기본) 아이콘도 있습니다.

Panel view icons

동기화된 영역

지난 11월에 소개된 미러 커서 기능을 Synced Regions라는 새로운 구현으로 개선했습니다. 현재 이 기능은 HTML에서 사용할 수 있으며 다음 방법 중 하나로 사용해 볼 수 있습니다.

  • HTML 태그에서 **타이핑 시 기호 이름 바꾸기** 명령 실행 (기본값은 에 바인딩됨).
  • editor.renameOnType 설정을 켜고 HTML 태그로 커서를 이동합니다.

HTML rename on type

빨간색 영역은 동기화된 영역입니다. 이름에서 알 수 있듯이 한 영역의 변경 사항은 다른 영역으로 동기화됩니다. 영역 밖으로 커서를 이동하거나 ESC를 눌러 이 모드를 종료할 수 있습니다. 또한, 영역에 공백으로 시작하는 콘텐츠를 입력하거나 붙여넣으면 이 모드가 종료됩니다.

JSX, XML 또는 TypeScript의 로컬 변수와 같은 다른 언어에서도 이와 같은 이름 바꾸기 환경을 사용할 수 있는 API 제공을 기대합니다.

확장 프로그램 기여

원격 개발

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

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

  • Dev Containers: PR을 컨테이너로 직접 체크아웃.
  • Dev Containers: Kubernetes 컨테이너 연결 지원.
  • Dev Containers: 실험적 WSL 2 Docker 엔진 지원.

원격 개발 릴리스 노트에서 새로운 확장 기능 기능 및 버그 수정에 대해 자세히 알아볼 수 있습니다.

확장 프로그램 작성

환영 보기 콘텐츠 API

특정 보기는 이제 확장 프로그램에서 제공하는 환영 콘텐츠를 지원합니다. 자세한 내용은 원본 이슈를 참조하십시오. 확장 프로그램에서 제공하는 보기에 이 API를 사용하는 방법에 대한 자세한 내용은 트리 보기 설명서를 참조하십시오.

이 API는 지난 마일스톤에서 제안된 대로 추가되었으며 이제 최종 완료되었습니다.

의미론적 토큰 공급자 API

의미론적 토큰 공급자 API가 이제 최종 완료되었습니다.

의미론적 토큰에 대한 테마 지원

색상 테마는 이제 TypeScript와 같은 언어 확장 프로그램에서 보고하는 의미론적 토큰을 색칠하는 규칙을 작성할 수 있습니다.

"semanticHighlighting": true,
"semanticTokenColors": {
    "variable.declaration.readonly:java": { "foreground": "#00ff00" "fontStyle": "bold" }
}

위의 규칙은 Java에서 읽기 전용 변수의 모든 선언을 녹색과 굵게 표시하도록 정의합니다.

의미론적 강조 표시 위키 페이지에서 자세한 정보를 확인할 수 있습니다.

TypeScript 의미론적 토큰 개선

TypeScript 언어 서버에서 더 많은 의미론적 토큰 유형을 반환합니다. 색상 테마는 이러한 새로운 토큰 유형을 스타일링에 활용할 수 있습니다.

  • JavaScript 기본 라이브러리의 모든 심볼에 defaultLibrary 수정자가 적용됩니다.
  • 콜백인 함수 매개변수는 function으로 분류됩니다.

TypeScript 언어 서버에서 반환하는 모든 의미론적 토큰 유형 및 수정자에 대한 개요는 TypeScript 의미론적 강조 표시 플러그인 README를 읽어보십시오.

파일 시스템 오류 코드

오류를 식별하는 문자열인 FileSystemError#code를 추가했습니다. codeFileSystemError.FileNotFound(msg).code === 'FileNotFound'와 같이 팩토리 함수를 통해 파일 시스템 오류가 생성될 때 해당 함수의 이름입니다.

StatusBarItem.command에 대한 인수

StatusBarItem.command는 이제 명령 ID뿐만 아니라 전체 Command 객체를 수락합니다. 이를 통해 상태 표시줄 항목이 활성화될 때 확장 프로그램이 명령에 인수를 전달할 수 있습니다.

사용자 지정 텍스트 편집기

사용자 지정 텍스트 편집기를 통해 확장 프로그램은 특정 텍스트 기반 리소스에 대해 VS Code의 표준 편집기를 웹뷰 기반의 사용자 지정 보기로 대체할 수 있습니다. 가능한 사용 사례는 다음과 같습니다.

  • 셰이더 또는 .obj 파일과 같은 에셋 미리 보기.
  • XAML과 같은 마크업 언어에 대한 WYSIWYG 편집기 만들기.
  • JSON 또는 CSV와 같은 데이터 파일에 대한 대체 대화형 보기 제공.

사용자 지정 편집기 설명서는 새로운 사용자 지정 텍스트 편집기 API를 사용하는 방법과 새 편집기가 VS Code와 잘 작동하도록 하는 방법을 다룹니다. 또한 사용자 지정 편집기 확장 프로그램 샘플도 확인하십시오.

The custom editor example extension

다음 반복에서는 이진 파일도 지원하도록 사용자 지정 편집기를 완전히 확장하는 제안을 최종 완료할 예정입니다.

보기 수준 진행률 표시

window.withProgress API의 ProgressOptions.location에 특정 보기에 진행률을 표시할 수 있는 새 옵션을 추가했습니다. 사용하려면 ProgressOptions.location = { viewId: <view-id> };를 설정합니다. 여기서 <view-id>는 진행률을 표시할 보기의 ID를 지정합니다. 위 보기 진행률 섹션에 이 기능이 작동하는 짧은 동영상이 있습니다.

확장 프로그램 보기 컨텍스트 메뉴 when-clause 컨텍스트

확장 프로그램 보기의 컨텍스트 메뉴에 확장 프로그램의 식별자를 포함하는 새로운 extension when-clause 컨텍스트를 추가했습니다.

  "extension/context": [
      {
          "command": "gitlens.showSettingsPage",
          "group": "2_configure",
          "when": "extension == eamodio.gitlens && extensionStatus == installed",
      }
  ]

새로운 Codicon

Codicon 라이브러리에 다음 아이콘을 추가했습니다.

  • account
  • bell-dot
  • debug-console
  • library
  • output
  • run-all
  • sync-ignored

New codicons

임베디드 언어 서버 작성에 대한 설명서

임베디드 프로그래밍 언어에 대한 언어 서버 작성은 일반 언어 서버 작성보다 복잡합니다. 오늘날 임베디드 언어의 인기가 높아짐에 따라 언어 확장 섹션에 임베디드 언어 토픽을 추가했습니다. 설명서에는 임베디드 언어 서버 구축의 두 가지 접근 방식인 언어 서비스와 요청 전달을 설명하는 두 가지 샘플이 포함되어 있습니다. 임베디드 언어 설명서를 검토하거나 두 샘플로 바로 이동하여 시작하십시오.

디버그 어댑터 프로토콜

새로운 진행률 이벤트

디버그 어댑터 프로토콜에서 진행률 보고에 대한 지원을 최종 완료했습니다. 디버그 어댑터는 이제 프런트엔드 클라이언트에 진행률 이벤트(progressStart, progressUpdate, progressEnd)를 보내 장기 실행 디버그 어댑터 작업의 진행률을 표시할 수 있습니다. progressStart 이벤트는 클라이언트가 취소 UI를 표시하고 cancel 요청을 보내도록 취소 가능으로 표시될 수 있습니다. 지원되는 디버그 어댑터에서 진행률 이벤트를 활성화하려면 프런트엔드 클라이언트가 initialize 요청의 supportsProgressReporting **클라이언트** 기능에 이 기능을 포함해야 합니다.

해당 DAP 기능 요청에서 더 많은 세부 정보를 찾을 수 있습니다. VS Code는 이 마일스톤부터 진행률 이벤트를 지원합니다.

클립보드 컨텍스트 값 "평가" 요청

DAP 클라이언트(프론트엔드)는 변수 및 표현식 값을 클립보드로 복사할 때 evaluate 요청을 사용합니다. 어댑터가 이 시나리오를 디버깅할 수 있도록 evaluate 요청에 전달되는 context 인수에 대한 값 집합에 새로운 값 clipboard가 추가되었습니다. 하위 호환성을 보장하기 위해 디버그 어댑터가 supportsClipboardContext 기능을 반환하는 경우에만 클라이언트가 새 값을 전달할 수 있습니다.

언어 서버 프로토콜

Language Server Index Format 사양의 새 버전(0.5.0)이 게시되었습니다. 이 버전은 프로젝트 덤프 전반에 걸쳐 모니커를 사용하여 참조 결과를 연결하는 것을 지원합니다. 또한 LSP 클라이언트(6.2.0-next.2) 및 서버(6.2.0-next.2) 라이브러리의 새 버전이 게시되었습니다.

제안된 확장 API

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

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

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

이 새로운 API를 통해 확장은 터미널에서 클릭된 링크를 가로채고 처리할 수 있습니다.

window.registerTerminalLinkHandler({
  handleLink((terminal, link) => {
    if (link === 'https://vscode.gisul.kr') {
      window.showInformationMessage('Handled');
      return true;
    }
    return false;
  });
});

터미널 환경에 기여

이 새로운 API를 통해 확장은 터미널이 시작될 때 환경 변수를 변경할 수 있습니다.

const collection = window.getEnvironmentVariableCollection(true);
const separator = process.platform === 'win32' ? ';' : ':';
collection.prepend('PATH', `/foo${separator}`);
collection.replace('JAVA_HOME', '/bar');

이러한 컬렉션은 확장 및 작업 영역별이며 VS Code는 여러 확장 간의 충돌을 처리하는 방법을 관리합니다. 선택적으로 창 다시 로드에 걸쳐 유지될 수 있으며, 창이 로드된 직후에 생성된 터미널이 확장 호스트 시작을 차단하지 않고 마지막으로 알려진 버전을 사용하도록 하는 데 주의를 기울였습니다. 이러한 유지된 컬렉션은 컬렉션을 해제하거나 새 비영구 컬렉션을 생성할 때, 또는 확장이 제거될 때 제거될 수 있습니다.

계획은 "정체된" 터미널 환경을 업데이트할 수 있는 일부 표시기를 통해 이러한 환경 수정을 사용자에게 제공하는 것이지만, 이는 아직 작업 중입니다. 이슈 #46696에서 토론을 팔로우할 수 있습니다.

브라우저 지원

원격 표시기

브라우저에서 VS Code를 사용할 때 이제 원격 표시기가 있습니다. 이를 통해 연결된 원격 환경을 알 수 있으며 확장은 원격과 관련된 추가 명령을 추가할 수 있습니다. 이 변경으로 인해 상태 표시줄의 바탕 화면에서 열기 링크가 제거되었으며 원격 선택기로 이동됩니다.

참고: VS Code는 현재 브라우저에서 SSH, 컨테이너 또는 WSL과 같은 다른 원격지에 연결하는 것을 지원하지 않습니다.

Web remote indicator

새로운 메뉴 위치를 통해 브라우저에서 실행되는 확장이 왼쪽 상단의 햄버거 메뉴에 링크를 추가할 수 있습니다.

Web navigational links

엔지니어링

VS Code는 ES6로 컴파일됩니다.

VS Code는 ES6를 완전히 채택했습니다. TypeScript 덕분에 우리는 오랫동안 ES6 구문을 사용해 왔지만, 이제 대상 런타임도 ES6를 지원한다고 가정합니다. 이를 통해 Strings#endsWith와 같은 ES6 "글로벌"을 사용할 수 있으며 생성기 함수 및 기호와 같은 새로운 언어 기능을 사용할 수 있습니다.

GitHub Actions를 사용한 이슈 분류 자동화

이번 반복에서 기존 분류 자동화를 GitHub 앱을 사용하는 것에서 GitHub Actions로 마이그레이션했습니다. 이를 통해 vscode 리포지토리에서 로그를 얻고 개발 속도를 높이는 등 몇 가지 좋은 이점을 얻었습니다. 또한 수정을 VS Code Insiders에 병합할 때 이슈 작성자에게 알림을 보내어 수정이 효과적인지 신속하게 확인할 수 있도록 하는 액션을 추가하는 등 몇 가지 새로운 자동화를 추가했습니다.

우리가 사용하는 액션의 전체 세트는 MIT 라이선스에 따라 GitHub에 공개되었습니다.

문서 및 확장

Python

두 가지 새로운 Python 튜토리얼이 있습니다.

C++

C++ 확장 튜토리얼이 다시 작성되었으며 Linux에서 C++ 사용에 대한 새로운 튜토리얼이 있습니다.

Docker 확장

Microsoft Docker 확장의 1.0 버전이 출시되었습니다. 이 확장은 프로젝트에 Docker 파일을 추가하고, Docker 이미지를 빌드 및 디버그하며, 컨테이너와 이미지를 쉽게 시작, 중지, 검사 및 제거할 수 있는 탐색기를 포함합니다.

Docker extension

Azure 확장

VS Code 내에서 직접 Azure 자산을 작업하기 위한 두 가지 새로운 확장이 있습니다.

  • Azure Virtual Machines - 미리 구성된 SSH 액세스 기능이 있는 Ubuntu 가상 머신을 생성하여 Remote-SSH 확장을 사용하여 연결할 수 있습니다.

  • Azure Resource Groups - 모든 Azure 리소스를 확인하고 Azure 보기를 사용하여 빠르게 탐색할 수 있습니다.

Azure Virtual Machines extension

주요 수정 사항

  • 75932: 디버그 로드 실패: 프로세스 선택기 실패(131072x1 화면 크기가 잘못되었습니다. 문제가 예상됩니다.)
  • 84271: 최근에 열린 항목(빠른 선택)에서 파일을 제거하려면 "x"를 추가합니다.
  • 89658: 디버그 어댑터를 찾을 수 없습니다.
  • 92381: 작업 영역에 폴더 추가 프롬프트가 반복적으로 폴더를 추가한 다음 제거하면 중복됩니다.
  • 93344: 환영 보기 스크롤
  • 93634: 진행률: 창 진행률을 무음 알림 진행률로 전환

감사합니다

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

이슈 추적에 대한 기여

vscode 기여

지속적인 피드백을 제공해 준 우리의 접근성 커뮤니티!

vscode-vsce 기여

language-server-protocol 기여

vscode-languageserver-node에 기여

vscode-generator-code에 대한 기여

vscode-loader에 기여

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, 予 恆.
  • 체코어 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.
  • 인도네시아어(인도네시아) 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.
  • 포르투갈어(브라질) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes.
  • 포르투갈어(포르투갈) Pedro Filipe.
  • 러시아어(러시아) Andrey Veselov, Vadim Svitkin, Минаков Антон.
  • 스페인어(스페인, 국제 정렬) Sifredo Da Silva, Ariel Costas Guerrero, David Roa, Abdón Rodríguez P., Luis Manuel, Carlos A. Echeverri V.
  • 스웨덴어(스웨덴) Per Ragnar Edin.
  • 타밀어(인도) krishnakoumar c.
  • 터키어(튀르키예) Umut Can Alparslan, Mehmet Yönügül.
  • 우크라이나어(우크라이나) Nikita Potapenko.
  • 베트남어(베트남) Hieu Nguyen Trung.

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