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

2022년 4월 (버전 1.67)

업데이트 1.67.1: 이 업데이트는 다음 보안 문제를 해결합니다.

업데이트 1.67.2: 이 업데이트는 다음 문제를 해결합니다.

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


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

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

릴리스 파티 시청: VS Code 팀이 새로운 기능에 대해 논의하는 내용을 들어보세요. YouTube 채널에서 이벤트 녹화본을 확인할 수 있습니다.

하이라이트 요약: 60초 안에 볼 수 있는 4월 VS Code 릴리스 하이라이트 동영상을 확인하여 무엇이 새로운지 빠르게 살펴보세요.

Insider: 새로운 기능을 최대한 빨리 사용해 보고 싶으신가요? 야간 빌드인 Insider 빌드를 다운로드하고 사용 가능한 최신 업데이트를 즉시 사용해 보세요.

워크벤치

탐색기 파일 중첩

탐색기에서 이제 파일 이름을 기반으로 관련 파일을 중첩하는 것을 지원합니다. 이 동작을 제어하는 여러 설정이 있습니다.

  • explorer.fileNesting.enabled - 파일 중첩이 전체적으로 활성화되는지 여부를 제어합니다. 전역 또는 특정 작업 영역에 대해 설정할 수 있습니다.
  • explorer.fileNesting.expand - 중첩된 파일이 기본적으로 확장되는지 여부를 제어합니다.
  • explorer.fileNesting.patterns - 파일이 중첩되는 방식을 제어합니다. 기본 구성은 TypeScript 및 JavaScript 프로젝트에 대한 중첩 인텔리전스를 제공하지만, 자체 프로젝트의 구조에 맞게 수정하는 것이 좋습니다. 일부 예시

기본 구성

.js and .min.js files nested under .ts file, tsconfig.test.json nested under tsconfig.json, package-lock.json nested under package.json

파일이 디렉토리 이름과 일치하는 경우 index.ts 아래에 중첩 ("index.ts": "${dirname}.ts")

in directory named SomeFolder, SomeFolder.ts is nested under index.ts

다른 파일과 이름은 같지만 세그먼트가 추가된 파일 중첩 ("*": "${basename}.*.${extname}")

file1.test.myext is nested under file1.myext, file2.spec.other is nested under file2.other

테마: GitHub Light High Contrast

파일 중첩 기능은 여러 반복 동안 실험 설정을 통해 사용할 수 있었습니다. 파일 작업에 대한 변경은 대부분 없지만, 파일 작업에는 약간의 변경이 있습니다. 실험 설정 explorer.experimental.fileNesting.operateAsGroup은 중첩을 축소했을 때 그룹으로 처리하고, 그렇지 않으면 단일 엔티티로 처리하는 대신 제거되었습니다. 이는 전체 중첩 파일 스택을 복사, 잘라내기, 드래그 또는 삭제하려는 경우 중첩을 축소하고 단일 엔티티로 작동할 수 있음을 의미합니다. 중첩된 요소가 확장되면 선택이 정상적으로 작동합니다.

설정 편집기 검색 필터 버튼

설정 편집기 검색 컨트롤에 이제 오른쪽에 깔때기 버튼이 포함되어 있습니다. 이 버튼을 클릭하면 검색 쿼리에 적용할 수 있는 필터 목록이 표시되어 결과를 필터링할 수 있습니다.

테마: Light Pink

설정 편집기 언어 필터 표시기

설정 편집기 언어 필터는 이제 범위 텍스트를 변경하여 언어 필터가 적용될 때 어떤 언어가 처리되고 있는지 더 명확하게 보여줍니다. 위의 짧은 동영상은 Markdown 언어 필터 (@lang:markdown)가 필터링된 설정에 적용되는 것을 보여줍니다.

참고로, 언어 필터를 적용하면 설정 값을 수정하면 해당 언어에 대해서만 해당 설정 값이 수정됩니다. 언어별 설정언어 식별자를 사용하여 settings.json에 범위가 지정됩니다.

  "[markdown]": {
      "editor.wordBasedSuggestions": "off"
  }

리팩토링 후 파일 저장

이름 바꾸기와 같은 리팩토링은 종종 여러 파일을 수정하고 저장되지 않은 변경 사항(더티 상태)으로 남겨둡니다. 외부 개발 도구는 일반적으로 이러한 파일이 저장되기를 요구합니다. 이 워크플로우를 쉽게 하기 위해, 리팩토링에 포함된 파일이 자동으로 저장되는지 여부를 제어하는 새 설정 files.refactoring.autoSave가 기본값 true로 제공됩니다.

열린 편집기 제한에 더티 편집기 제외

새 설정 workbench.editor.limit.excludeDirty는 구성된 제한을 계산할 때 열린 편집기의 최대 개수에서 더티 편집기를 제외할지 여부를 제어합니다. 이 설정은 기본적으로 비활성화되어 있습니다(false).

커밋되지 않은 변경 사항을 타임라인으로 되돌리기

지난달 로컬 기록 기능을 도입했을 때, Git 타임라인 공급자에서 커밋되지 않은 변경 사항 항목을 제거했습니다. 중복되는 것처럼 느껴졌기 때문입니다. 하지만 일부 사용자는 이 타임라인 항목에서 실제 가치를 보며, 이제 새 설정 git.timeline.showUncommitted를 적절하게 구성하여 이 항목을 다시 가져올 수 있습니다.

열기 실패 시 새 편집기 플레이스홀더

편집기 열기에 실패하면 VS Code는 더 이상 알림을 표시하고 이전에 열린 편집기를 보여주지 않습니다. 대신 오류 메시지가 포함된 일반 플레이스홀더와 경우에 따라 오류를 해결할 수 있는 작업이 표시됩니다.

언어 상태 개선

언어 상태 항목이 이제 서식 지정 충돌을 표시합니다. 이는 언어에 대해 여러 서식 지정기가 설치되었지만 기본 서식 지정기가 구성되지 않은 경우 발생합니다. 또한, 심각한 상태를 포함하는 경우 언어 상태 항목이 더 눈에 띄게 표시됩니다.

또한, 언어 상태 항목은 문서가 현재 설정된 언어와 다른 언어로 의심되는 경우 언어를 전환하라는 힌트를 표시합니다. 이는 제목 없는 편집기 및 노트북 셀에만 적용되며, workbench.editor.languageDetectionHints 설정으로 구성할 수 있습니다. 아래는 다양한 다른 언어로 셀을 실행하는 것을 지원하는 Handy Dandy Notebook에서 이를 시연한 것입니다.

테마: GitHub Light High Contrast

유효하지 않거나 호환되지 않는 확장 프로그램 표시

이제 확장 프로그램 보기에서 **설치됨** 확장 프로그램 목록에 오류 상태와 함께 유효하지 않거나 호환되지 않는 확장 프로그램이 표시됩니다. 예를 들어, VS Code 버전이 1.67.0-insider이고 VS Code 버전 1.68.0을 요구하는 확장 프로그램을 설치한 경우, 호환되지 않는 오류 상태로 목록에 표시됩니다.

Incompatible extension details shown in the Extensions view item hover

종료 전 확인

새 설정 window.confirmBeforeClose를 구성하여 애플리케이션을 종료하기 전에 확인 대화 상자를 표시할 수 있습니다.

키 바인딩을 사용할 때 키보드 전용 keyboardOnly를 선택하거나, 마우스를 사용하여 종료할 때에도 always를 선택할 수 있습니다.

참고: 이 설정은 완전히 새로운 것은 아니며 웹용 VS Code에서는 이미 제공되었습니다.

comments.openView 기본값

comments.openView의 이전 기본값은 file이었으며, 이로 인해 주석이 있는 파일을 열 때마다 주석 보기 창이 열렸습니다. 주석 보기 창을 덜 번거롭게 만들기 위해, 새로운 기본값은 firstFile이며, 세션 동안 주석이 있는 파일을 처음 열 때만 주석 보기 창을 엽니다.

여러 줄 주석

백그라운드에서는 VS Code가 주석 UI가 최종 확정된 이후 여러 줄 주석을 지원했지만, UI에는 노출되지 않았습니다. 이제 여러 줄 주석을 보고 남길 수 있습니다.

새 창에서 URI 처리

VS Code URI에 windowId=_blank 쿼리 매개변수가 포함되어 있으면 VS Code는 새 창에서 처리합니다. 예: vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git&windowId=_blank.

편집기

괄호 쌍 색상화가 기본적으로 활성화됨

1.60 릴리스에서 도입된 새로운 괄호 쌍 색상화 기능에 대한 긍정적인 피드백을 바탕으로 괄호 쌍 색상화를 기본적으로 활성화했습니다.

Side by side comparison with bracket pair colorization on and off

"editor.bracketPairColorization.enabled"false로 설정하여 괄호 쌍 색상화를 비활성화할 수 있습니다.

특정 언어에 대해서만 괄호 쌍 색상화를 비활성화할 수도 있습니다.

"[typescript]": {
  "editor.bracketPairColorization.enabled": false,
},

TextMate 문법에서 토큰을 불균형으로 표시 가능

이전에는 TextMate 문법으로 셸 스크립트의 case 문에서 닫는 괄호와 같이 일부 괄호를 불균형으로 표시할 수 없었습니다.

Old behavior where unbalanced brackets not detected

괄호 쌍 일치 및 색상화를 더 강력하게 만들기 위해, TextMate 문법 기여는 이제 특정 토큰의 괄호가 일치하지 않도록 표현할 수 있습니다. 확장 프로그램 package.jsoncontributes 섹션에서 제공된 문법은 balancedBracketScopes (기본값 ["*"]) 및 unbalancedBracketScopes (기본값 []) 속성을 사용하여 괄호 일치에 대한 범위를 포함하거나 제외할 수 있습니다.

"grammars": [{
    "language": "shellscript",
    "scopeName": "source.shell",
    "path": "./syntaxes/shell-unix-bash.tmLanguage.json",
    "balancedBracketScopes": [ "*" ],
    "unbalancedBracketScopes": [ "meta.scope.case-pattern.shell" ]
}],

이 기능을 통해 셸 스크립트 문법은 case 문에서 )가 일치하지 않도록 표시할 수 있습니다.

New behavior correctly skipping a bracket that isn't matched

새 괄호 일치 알고리즘

괄호 일치가 이제 괄호 색상화와 동일한 데이터 구조를 사용합니다. 이는 정확성과 성능을 모두 향상시킵니다.

이전 괄호 일치 동작 (색상과 강조 표시 장식이 일치하지 않는 것을 확인)

Old behavior with incorrect bracket matching

새 괄호 일치 동작

New behavior with correct bracket matching

괄호 가이드 개선

가로 괄호 가이드가 이제 줄 바꿈된 줄을 올바르게 지원합니다. 또한, 단일 줄만 차지하는 괄호 쌍은 자체 가로 괄호 가이드를 갖습니다.

Horizontal bracket guides displayed for wrapped lines

가로 괄호 가이드는 기본적으로 비활성화되어 있으며 "editor.guides.bracketPairsHorizontal": true로 활성화할 수 있습니다.

이번 릴리스에서는 "editor.guides.highlightActiveIndentation""always" 값을 허용합니다. always로 설정하면, 활성 괄호 쌍이 이미 있는 경우에도 들여쓰기 가이드가 강조 표시됩니다.

인라인 힌트 전환

인라인 힌트는 소스 코드 내에서 추가 정보를 표시하는 좋은 방법입니다. 하지만 때로는 실제 소스 코드만 보고 싶을 때도 있습니다. 인라인 힌트를 빠르게 숨기기 위해 editor.inlayHints.enabled 설정이 변경되었습니다. onoff 외에도 onUnlessPressedoffUnlessPressed 값이 있습니다. on/offUnlessPressed 값은 Ctrl+Alt를 누르고 있는 동안 인라인 힌트를 숨기거나 표시합니다.

편집기 > 인라인 힌트: 사용

  • on - 인라인 힌트가 활성화됩니다.
  • off - 인라인 힌트가 비활성화됩니다.
  • onUnlessPressed - Ctrl+Alt로 인라인 힌트가 표시되고 숨겨집니다.
  • offUnlessPressed - Ctrl+Alt로 인라인 힌트가 숨겨지고 표시됩니다.

인라인 제안 개선

지난달에는 빠른 제안을 위해 👻 고스트 텍스트(흐릿한 색상)를 사용할 수 있는 기능을 추가했습니다. 알림: editor.quickSuggestions 설정에 inline을 사용해야 합니다. 이 영역에서 일부 개선 작업을 수행했으며, 특히 트리거 문자 및 TypeScript "함수에 인수로 완성"이 지원됩니다.

.와 같은 트리거 문자를 입력할 때 IntelliSense를 비활성화하려면 "editor.suggestOnTriggerCharacters": false를 설정합니다. TypeScript 함수 호출 완료를 활성화하려면 "typescript.suggest.completeFunctionCalls": true를 사용합니다.

편집기로 텍스트 드래그 앤 드롭

이제 다른 애플리케이션에서 텍스트 편집기로 텍스트를 드래그 앤 드롭할 수 있습니다. 예를 들어 macOS에서는 이모지 패널에서 텍스트 편집기로 이모지를 드롭할 수 있습니다.

드래그하는 동안 점선 커서가 텍스트가 삽입될 위치를 표시합니다.

터미널

찾기 결과 개수

터미널에서 검색할 때 결과 개수와 현재 선택된 일치 항목 인덱스가 이제 찾기 컨트롤에 표시됩니다.

Text is searched for in the terminal and the Find control is labeled match 12 of 14 to indicate that match 12 is currently selected

소스 제어

소스 제어 리포지토리 보기

이번 마일스톤에서는 소스 제어 리포지토리 보기에 표시되는 리포지토리의 기본 정렬 순서를 제어하기 위한 새 설정 scm.repositories.sortOrder를 도입했습니다. 리포지토리는 발견 순서, 이름, 전체 경로별로 정렬할 수 있습니다. 정렬 순서를 변경하려면 소스 제어 리포지토리 보기의 ... 보기 및 추가 작업 메뉴와 소스 제어 보기의 ... > 보기 및 정렬 > 리포지토리 메뉴를 사용하면 됩니다.

아래 짧은 동영상은 SCM > 리포지토리: 정렬 순서 설정이 기본적으로 discovery time(리포지토리가 선택된 시간)이며, 소스 제어 보기에서도 정렬 순서를 변경할 수 있음을 보여줍니다.

편집기 장식 개선

지난 마일스톤에서는 수정된 줄 장식에 대한 패턴을 채택하여 추가/수정된 줄에 대한 편집기 장식의 접근성을 개선했습니다. 이번 마일스톤에서는 사용자가 편집기 장식에 대한 패턴을 전환할 수 있는 새 설정 scm.diffDecorationsGutterPattern을 추가했습니다.

이 설정은 기본적으로 수정된 줄 장식에 대한 패턴을 사용하지만, 추가된 줄에는 사용하지 않습니다.

"scm.diffDecorationsGutterPattern": {
    "added": false,
    "modified": true
}

성능 개선

git.untrackedChanges 설정을 hidden으로 설정한 사용자는 대규모 리포지토리에서 작업할 때 성능이 향상됩니다. 이는 git status를 호출할 때 -uno 매개변수를 전달하여 달성됩니다.

원격 소스 공급자 API 확장

Git 확장 프로그램 API는 이제 원격 소스 공급자를 등록하거나 표시하는 확장 프로그램이 원격 소스에 대한 더 풍부한 정보를 제공할 수 있도록 합니다.

원격 소스 공급자는 이제 개별 원격 소스의 설명과 아이콘을 설정할 수 있습니다. 또한, 공급자는 선택적으로 최근 원격 소스를 지정할 수 있습니다. 이들은 선택기에서 최상위 수준에 표시되어 쉽게 액세스할 수 있으며, 제공된 경우 타임스탬프별로 정렬됩니다.

확장된 API는 기본 GitHub 확장 프로그램, GitHub RepositoriesAzure Repos 확장 프로그램에서 github.devvscode.dev에서 채택했습니다.

SSH를 사용하여 GitHub에서 복제

새 설정 github.gitProtocol을 사용하면 GitHub에서 리포지토리를 복제할 때 기본 프로토콜을 변경할 수 있습니다. 기본값은 https이지만 ssh로 변경할 수 있습니다.

디버깅

지연 변수 자동 확장

몇 달 전에 디버거 변수 보기에서 "지연" 변수를 확장하기 위한 버튼을 누르는 지원을 추가했습니다. 버튼 클릭 없이 지연 변수를 자동으로 확장하는 새 설정 debug.autoExpandLazyVariables가 있습니다.

지연 변수용 새 버튼

텍스트 링크 버튼을 "눈" 코드 아이콘이 있는 실제 버튼으로 업데이트했습니다. "눈" 코드 아이콘도 더 눈처럼 보이도록 업데이트되었습니다.

A button to expand a lazy variable

Shift-클릭으로 중단점 비활성화

이제 중단점(또는 조건부 중단점, 로그포인트)을 Shift+클릭하여 비활성화하고 다시 활성화할 수 있습니다.

언어

이제 VS Code 탐색기에서 Markdown 편집기로 파일을 드래그 앤 드롭하여 Markdown 링크를 빠르게 만들 수 있습니다. 파일이 Markdown 편집기 위로 드래그될 때 Shift 키를 누르고 있으면 편집기로 드롭되어 해당 링크가 생성됩니다.

파일이 이미지처럼 보이면 VS Code는 자동으로 Markdown 이미지를 삽입합니다. 그렇지 않으면 일반 Markdown 링크가 추가됩니다.

이는 웹 브라우저에서 이미지를 드래그 앤 드롭하는 것과 같이 다른 애플리케이션에서 일부 유형의 파일을 드래그 앤 드롭할 때도 작동합니다.

"markdown.editor.drop.enabled": false를 설정하여 이 드롭 동작을 비활성화할 수 있습니다.

Markdown: 헤더에 대한 모든 참조 찾기

VS Code는 이제 Markdown 파일에서 헤더에 대한 모든 참조 찾기를 실행하는 것을 지원합니다. 이를 통해 현재 작업 영역 내에서 주어진 헤더가 사용되는 모든 위치를 볼 수 있으며, 다른 Markdown 파일에서 해당 헤더로의 링크도 포함됩니다.

시작하려면 커서를 헤더 자체 또는 헤더 링크의 프래그먼트 부분(예: [link text](#_some-header) 또는 [link text](/path/to/file#some-header)#some-header)에 놓고 모든 참조 찾기를 실행합니다.

Finding all references to a Markdown header

이렇게 하면 참조 보기에서 모든 참조가 표시됩니다. 다른 보기를 선호하는 경우 참조 미리보기 또는 참조로 이동 명령을 사용할 수도 있습니다.

VS Code는 또한 현재 파일 내에서 참조 링크에 대한 모든 참조를 찾는 것을 지원합니다. 이는 다음을 지원합니다.

  • [some text][ref]에서 ref.
  • [ref]라는 짧은 링크에서 ref.
  • [ref]: http://example.com 링크 정의에서 ref.

Finding all places a Markdown link reference is used

Markdown: 파일에 대한 모든 참조 찾기

현재 작업 영역에서 주어진 Markdown 파일에 대한 모든 참조를 찾을 수도 있습니다. 다시 말하지만, 여기에는 파일 간의 링크가 포함됩니다.

다음과 같은 몇 가지 방법으로 이 작업을 트리거할 수 있습니다.

  • 현재 Markdown 파일에 대한 참조를 찾으려면 Markdown: 파일 참조 찾기 명령을 사용합니다.
  • 탐색기에서 Markdown 파일에 대한 참조를 찾으려면 해당 파일을 마우스 오른쪽 버튼으로 클릭하고 파일 참조 찾기 명령을 실행합니다.
  • Markdown 파일에 대한 링크의 파일 부분(예: [text](/link/to/file.md))에서 모든 참조 찾기를 실행합니다.

이렇게 하면 해당 파일이 참조되는 모든 위치가 나열되며, 해당 파일 내의 헤더에 대한 참조도 포함됩니다.

Markdown: URL에 대한 모든 참조 찾기

마지막으로, 현재 작업 영역에서 주어진 URL이 사용되는 모든 위치를 찾는 것도 지원합니다.

Finding all places where a URL is used in Markdown files

Markdown: 헤더 이름 바꾸기

Markdown 파일에서 헤더를 변경했는데 실수로 모든 링크를 깨뜨렸다는 것을 깨달은 적이 있습니까? 바로 이때 새로운 Markdown 이름 바꾸기 지원이 도움이 될 수 있습니다.

시작하려면 헤더에 커서를 놓고 F2를 눌러 이름 바꾸기를 시작합니다. 헤더에 대한 새 텍스트를 입력한 다음 Enter를 눌러 수락합니다. 이렇게 하면 현재 헤더가 업데이트되고 현재 작업 영역에 있는 모든 링크도 업데이트됩니다.

헤더 자체 또는 헤더로의 링크 헤더 구성 요소(예: [link text](#_some-header)some-header 또는 [link text](/path/to/file#some-header))에서 이름 바꾸기를 트리거할 수 있습니다.

Markdown에서 참조 링크의 이름도 바꿀 수 있습니다. 이렇게 하면 현재 Markdown 파일의 모든 참조 링크가 업데이트됩니다.

Renaming a Markdown link reference using F2

Markdown: 파일 이름 바꾸기

새로운 Markdown 이름 바꾸기 지원을 마무리하면서, Markdown 링크의 파일 경로에 F2를 사용하여 디스크에서 파일의 이름을 바꾸고 해당 파일에 대한 모든 Markdown 참조를 업데이트할 수 있습니다.

Renaming a file by pressing F2 on the file path in a link

현재 파일 이름 바꾸기는 텍스트 편집기에서 파일 링크에 F2를 사용해서만 지원됩니다. 향후 반복에서는 탐색기에서 이름 바꾸기가 트리거될 때 링크를 업데이트하는 것도 지원할 계획입니다.

JSON

새 설정 json.validate.enable을 사용하면 JSON 유효성 검사를 끌 수 있습니다.

웹용 VS Code

원격 리포지토리 선택기 열기

웹용 VS Code는 원격 리포지토리 열기 선택기를 사용할 때 window.openFoldersInNewWindow 설정을 존중합니다. 이렇게 하면 선택기 동작이 VS Code의 다른 버전과 일치하게 되고 새 창에서 열기 빠른 선택 항목 버튼이 대체됩니다.

확장 프로그램 기여

Java

인라인 힌트

Java 확팩에 포함된 Java 언어 서비스는 이제 메서드 서명의 매개변수 이름을 표시하기 위한 인라인 힌트를 지원합니다.

Java 매개변수 이름 인라인 힌트에는 세 가지 모드가 있습니다.

  • literals - 리터럴 인수에 대해서만 매개변수 이름 힌트 활성화 (기본값).
  • all - 리터럴 및 비리터럴 인수에 대해 매개변수 이름 힌트 활성화.
  • none - 매개변수 이름 힌트 비활성화.

지연 변수 해결

이제 Java 디버거 확장 프로그램이 '지연' 변수를 지원합니다. 이 기능을 사용하면 디버거 UI를 명시적으로 확장하여 값을 보기 전까지 비용이 많이 드는 변수에 대한 작업을 연기할 수 있습니다.

Jupyter

Jupyter PowerToys 확장 프로그램

Jupyter 노트북 작업에 대한 실험적인 기능을 제공하는 Jupyter PowerToys 확장 프로그램을 발표하게 되어 기쁩니다. 첫 번째 릴리스에서는 다음 기능을 프로토타입으로 만들었습니다.

  • 커널 관리 패널
  • 컨텍스트 도움말
  • 실행 그룹화

이 기능들을 직접 사용해 보시고 의견을 알려주시면 향후 지원 기능으로 다듬을 수 있기를 바랍니다!

자세한 내용은 vscode-jupyter-powertoys 리포지토리의 README를 참조하십시오.

웹 확장

이제 Jupyter 확장 프로그램을 웹 확장 프로그램으로 설치하여 vscode.dev와 함께 사용할 수 있습니다. 현재 기능은 제한적이며, https가 필요 없는 Jupyter 서버에서 실행되는 노트북(.ipynb 파일)만 지원합니다.

기능을 시험해보고 싶다면 다음 명령으로 Jupyter를 로컬 컴퓨터에서 실행하세요.

jupyter --no-browser --NotebookApp.allow_origin_pat=https://.*\.vscode-cdn\.net

그리고 Jupyter: 연결을 위한 Jupyter 서버 지정 명령을 사용하여 연결할 수 있습니다.

향후 릴리스에서는 브라우저에서 실행될 때 다음과 같은 더 많은 기능을 활성화할 예정입니다.

  • 'https' 기반 서버
  • IntelliSense
  • 데이터 보기
  • 변수 보기
  • 대화형 창
  • IPyWidgets
  • 플롯 보기
  • 내보내기

Jupyter 커널 처리

Jupyter 커널 처리에 여러 업데이트가 이루어졌습니다.

  • 커널이 충돌했음을 더 명확하게 알리기 위해, 이제 확장 프로그램은 셀 출력에 이 정보를 표시합니다.
  • 실행 중에 특정 알려진 오류가 감지되면 셀 출력에 문제 해결 지침이 표시됩니다.
  • 커널 실행 문제를 해결하는 것은 까다롭고 시간이 많이 소요될 수 있습니다. 저희 위키에 문제 해결 섹션을 마련했으며, 이를 통해 더 빠른 해결책을 찾을 수 있기를 바랍니다. 저희 GitHub 토론 포럼도 도움을 받을 수 있는 훌륭한 리소스입니다.

Python

언어 서버 변경 시 다시 로드 없음

Python 확장 프로그램은 이제 python.languageServer 설정 값을 업데이트하고 VS Code를 다시 로드할 필요 없이 언어 서버를 자동으로 다시 시작하는 것을 지원합니다.

Black 형식 지정자 확장 프로그램

이제 Black Formatter 확장 프로그램이 있으며, black 형식 지정자를 사용하여 Python 형식 지정을 지원합니다. 확장 프로그램의 사전 릴리스 버전을 설치할 수 있습니다.

isort로 가져오기 정리

이제 isort 확장 프로그램을 통해 isort 라이브러리를 사용하여 가져오기 정리를 제공합니다. 확장 프로그램의 사전 릴리스 버전을 사용할 수 있습니다.

원격 개발

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

원격 개발 릴리스 노트에서 새로운 확장 프로그램 기능 및 버그 수정을 확인할 수 있습니다. 원격 개발 릴리스 노트.

GitHub Pull Requests 및 Issues

GitHub Pull Requests and Issues 확장 프로그램에 대한 작업이 계속 진행 중이며, 이를 통해 풀 리퀘스트 및 이슈를 작업하고, 생성하고, 관리할 수 있습니다. 이번 릴리스의 하이라이트는 다음과 같습니다.

  • 여러 줄 주석
  • 트리에서 커밋 변경 사항 보기

확장 프로그램 0.42.0 릴리스의 변경 로그를 확인하여 다른 하이라이트를 살펴보십시오.

미리보기 기능

설정 프로필

이번 마일스톤에서는 설정, 확장 프로그램 및 UI 사용자 지정의 컬렉션인 설정 프로필을 도입했습니다. VS Code를 사용자 지정한 경우 이제 사용자 지정을 설정 프로필 파일(mysetup.code-profile)로 내보내 컴퓨터에 저장하고 다른 사람과 공유할 수 있습니다.

다음 짧은 동영상은 VS Code에서 설정 프로필을 내보내는 방법을 보여줍니다.

설정 프로필 파일을 가져와서 사용자 지정을 복원할 수도 있습니다.

아래는 VS Code에 설정 프로필을 가져오는 방법을 보여줍니다.

설정 프로필 파일을 클라우드에 호스팅할 수 있습니다. 예를 들어 공개 GitHub gist로 저장하고 URL을 다른 사람과 공유할 수 있습니다. URL을 제공하여 설정 프로필 파일을 가져올 수 있습니다.

참고: 현재는 다음과 같은 UI 사용자 지정만 설정 프로필에 포함됩니다. 향후 더 많은 항목이 추가될 예정입니다.

  • 상태 표시줄 항목 가시성
  • 활동 표시줄, 하단 패널 및 측면 패널 항목 가시성 및 순서
  • 보기 가시성, 위치 및 순서

TypeScript 4.7 지원

이 업데이트에는 곧 출시될 TypeScript 4.7 릴리스 지원이 포함됩니다. TypeScript 팀이 현재 작업 중인 내용에 대한 자세한 내용은 TypeScript 4.7 반복 계획을 참조하십시오. 일부 하이라이트

  • 새로운 소스 정의로 이동 명령을 사용하여 라이브러리 함수의 JavaScript 구현으로 직접 이동합니다. 이 기능에 대해 더 자세히 알아보고 TypeScript 이슈 #49003에서 피드백을 공유할 수 있습니다.
  • 객체 멤버로서 메서드를 완성하기 위한 스니펫.
  • 그룹 인식 가져오기 정리.

TypeScript 4.7 야간 빌드를 사용하려면 TypeScript Nightly 확장 프로그램을 설치합니다.

확장 프로그램 작성

탭 API

읽기 전용 탭 API 부분을 완료했습니다 (탭 닫기도 지원). 이는 가장 많이 요청된 이슈 중 하나인 microsoft/vscode#15178의 완료를 의미합니다. 이는 그룹 수, 열린 탭, 활성 탭, 탭이 나타내는 편집기 유형 등과 같은 정보를 노출합니다! 자세한 내용은 vscode.d.ts 파일에서 API 진입점인 window.tabGroups를 참조하십시오.

노트북 변경 및 저장 이벤트

두 가지 노트북 관련 이벤트를 최종 확정했습니다.

  • vscode.workspace.onDidSaveNotebookDocument - 노트북이 저장될 때마다 발생하는 이벤트입니다.
  • vscode.workspace.onDidChangeNotebookDocument - 노트북이 변경될 때마다 발생하는 이벤트입니다. 이는 셀 추가 또는 제거와 같은 구조적 변경 및 출력 또는 메타데이터 변경과 같은 셀 변경을 포함합니다.

비재귀 작업 영역 파일 감시자 지원

이전 마일스톤에서는 createFileSystemWatcher API를 사용하여 폴더가 열린 작업 영역 내부에 있지 않은 한 디스크의 모든 폴더를 감시할 수 있다고 발표했습니다. 이제 이 제한을 완화하여 열린 작업 영역 내부에서도 비재귀 파일 감시자를 어디에나 허용합니다. 비재귀 감시자는 구성된 제외 설정(files.watcherExclude)이 적용되지 않으므로 파일 감시자가 구독한 경로에 대해서만 발생하는 것을 확신할 수 있다는 장점이 있습니다.

확장 프로그램에 대한 사용자 지정 제외 규칙이 있는 재귀 감시자에 대한 전체 지원 작업을 진행 중이므로 더 많은 것을 기대해 주십시오!

UX 지침

확장 프로그램 작성자를 위한 UX 가이드라인이 재작업되어 자체 목차를 갖게 되었으며, 다양한 VS Code 사용자 인터페이스 요소를 사용하는 모범 사례를 찾을 수 있습니다. 특정 주제는 확장 프로그램에 대한 UI를 만들 때 권장되는 권장 사항과 금지 사항을 논의하여 VS Code 내에서 원활하게 통합되도록 합니다.

Command Palette UX Guidelines on code.visualstudio.com

확장 프로그램 테스트 실행

이전에는 VS Code가 테스트 실행이 완료되는 즉시 확장 호스트 프로세스를 종료했습니다. 이제 확장 테스트를 실행할 때 VS Code는 먼저 일반적인 deactivate 흐름을 거친 후 종료됩니다. 이렇게 하면 프로세스를 생성하는 확장 프로그램이 정리 작업을 더 잘 수행할 수 있습니다.

사용자 지정 트리에 파일 드롭

최근에 최종 확정된 트리 드래그 앤 드롭 API를 기반으로, 이제 text/uri-list MIME 유형을 사용하여 OS에서 확장 프로그램 트리 보기로 파일을 드롭하는 기본 지원이 제공됩니다.

디버거 확장 프로그램 작성

supportSuspendDebuggeesupportTerminateDebuggee 지원을 위한 UI

disconnect 요청에는 디버거 연결을 해제할 때 디버거에 발생하는 일을 클라이언트가 제어할 수 있도록 하는 두 가지 추가 옵션이 있습니다.

  • suspendDebuggee는 연결 해제 후 디버거가 계속 일시 중지되어야 하는지 여부를 나타냅니다.
  • terminateDebuggee는 디버거가 연결 해제될 때 디버거가 종료되어야 하는지 여부를 나타냅니다.

디버그 어댑터는 supportSuspendDebuggeesupportTerminateDebuggee 기능을 사용하여 이러한 옵션을 지원함을 신호할 수 있습니다. 지원되는 경우 디버그 도구 모음의 중지 버튼 옆에 추가 연결 해제 명령 드롭다운이 나타납니다.

예를 들어, "launch" 유형의 디버그 세션에서 두 기능을 모두 지원하는 디버그 어댑터의 경우, 기본 도구 모음 버튼은 일반 중지 버튼이지만, 드롭다운에는 연결 해제(terminateDebuggee: false) 및 연결 해제 및 일시 중지(terminateDebuggee: false, suspendDebuggee: true)가 포함됩니다.

A dropdown with extra disconnection commands

언어 서버 프로토콜

노트북 및 진단 가져오기에 대한 지원은 제안된 상태에서 벗어나 3.17 릴리스를 출시할 준비가 되었습니다. 해당 클라이언트 및 서버 라이브러리의 새 버전이 npm에 게시되었습니다.

제안된 API

모든 마일스톤에는 새로운 제안 API가 제공되며 확장 저자는 이를 시험해 볼 수 있습니다. 항상 그렇듯이 피드백을 원합니다. 제안 API를 시험해 보는 단계는 다음과 같습니다.

  1. 시험하고 싶은 제안을 찾아 package.json#enabledApiProposals에 해당 이름을 추가하세요.
  2. 최신 vscode-dts를 사용하고 vscode-dts dev를 실행하세요. 그러면 해당 d.ts 파일이 작업 영역으로 다운로드됩니다.
  3. 이제 제안에 대한 프로그래밍을 할 수 있습니다.

제안 API를 사용하는 확장은 게시할 수 없습니다. 다음 릴리스에서 호환성이 깨지는 변경 사항이 있을 수 있으며, 기존 확장을 깨뜨리는 일은 절대 없을 것입니다.

편집기로 드롭

제안된 텍스트 편집기 드롭 API를 통해 확장 프로그램은 텍스트 편집기로의 드롭을 처리할 수 있습니다. 이러한 드롭 이벤트는 VS Code 내부(예: VS Code 탐색기에서 텍스트 편집기로 파일을 드래그하는 경우)에서 발생하거나 운영 체제에서 VS Code로 파일을 드롭하여 생성될 수 있습니다.

이번 반복에서는 이 API를 공급자 기반 모델로 전환했습니다. 또한 이 API를 사용하는 방법을 보여주는 새 확장 프로그램 샘플을 만들었습니다.

보기 배지

이제 보기에 배지를 추가하기 위한 새 제안을 사용해 볼 수 있습니다. VS Code 코어에서 제공하는 보기에 배지가 작동하는 방식과 유사하게, 확장 프로그램은 이 API 제안을 사용하여 보기에 숫자 배지를 추가할 수 있습니다.

엔지니어링

Electron 스모크 테스트를 위한 Playwright

웹 기반 스모크 테스트에는 오랫동안 Playwright를 사용해 왔습니다. 그러나 Electron 기반 스모크 테스트는 여전히 자체 사용자 지정 솔루션에 의존했습니다. Playwright의 Electron 지원을 통해 웹 기반 스모크 테스트 코드의 대부분을 재사용하고 Electron 스모크 테스트에도 사용할 수 있었습니다. 이제 Trace Viewer를 사용하여 실패한 스모크 테스트를 사후 진단할 수 있게 되어 기쁩니다.

확장 프로그램에 대한 새 현지화 파이프라인

VS Code는 언어 팩을 설치하여 활성화할 수 있는 여러 표시 언어를 지원합니다. 이러한 언어는 VS Code 자체와 VS Code에 내장된 확장을 현지화하는 데 유용합니다. 이번 릴리스에서는 팀에서 관리하는 내장되지 않은 확장을 현지화하기 위한 표준화 노력을 시작했습니다. 이 노력의 결과는 GitHub RepositoriesAzure Repos 확장과 같이 공통 종속성 확장인 Remote Repositories가 이 작업을 최초로 온보딩하면서 나타날 것입니다.

다음 릴리스에서는 이 표준화 노력을 계속하고 더 많은 확장을 온보딩할 것입니다. Python 확장이 현재 진행 중이며 GitHub Repositories와 Azure Repos가 신속하게 뒤따를 것입니다. 팀에서 관리하는 모든 확장이 현지화되고 향후 생성되는 모든 새 확장은 쉽게 온보딩할 수 있도록 하여 영어가 모국어가 아닌 사용자도 VS Code에서 훌륭한 경험을 할 수 있도록 하려고 합니다.

문서

VS Code의 Rust

VS Code의 Rust에 대한 새로운 주제로, Rust 프로그래밍 언어 지원에 대해 rust-analyzer 확장과 함께 설명합니다. rust-analyzer 확장은 코드 완성, 린팅, 리팩토링, 디버깅 등 풍부한 언어 기능을 포함합니다.

rust-analyzer extension for Visual Studio Code details pane

주요 수정 사항

  • 114844 충돌 대화 상자에서 이전 세션의 편집기 복원을 건너뛸 수 있도록 허용
  • 127936 시작 시 파일에 대한 언어별 설정으로 files.encoding 설정 허용
  • 138461 React 파일에서 [ ] 쌍 안에서의 Emmet 자동 완성 오류
  • 139392 최근 프로젝트 지우기 확인
  • 139950 중단점이 적중되면 캐럿(커서)이 해당 줄로 이동해야 함
  • 145265 Windows의 터미널이 cmd /C를 사용하면 전달된 인수가 손상됨
  • 146406 터미널의 Powerline 기호에 잘못된 색상 적용
  • 146977 macOS의 Info.plist에 폴더 선언 지원
  • 147104 GitHub 로그인 완료 불가

감사합니다

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

웹 확장

확장 제작자분들이 웹 확장으로 코드를 실행할 수 있도록 지원해주셨습니다 (아래 목록은 2022년 3월 28일부터 2022년 5월 1일까지입니다).

이슈 추적

이슈 추적에 대한 기여

풀 리퀘스트

vscode 기여

vscode-css-languageservice에 대한 기여

vscode-generator-code에 대한 기여

vscode-js-debug 기여

  • @timvahlbrock
    • feat: 소스 맵을 로드할 때 pathMapping 적용 PR #1241
    • feat: hover 평가 시간 초과를 구성 가능하게 만들기 PR #1243

vscode-pull-request-github 기여

debug-adapter-protocol에 기여

language-server-protocol 기여

monaco-editor 기여

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