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

2023년 9월 (버전 1.83)

업데이트 1.83.1: 이 업데이트는 이슈들을 수정합니다.

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


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

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

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

접근성

GitHub 풀 리퀘스트 및 이슈 댓글 개선

풀 리퀘스트 및 이슈를 작업하고, 생성하고, 관리할 수 있는 GitHub Pull Requests and Issues 확장 프로그램은 이번 반복에서 댓글 달기 및 검토 환경에 대한 많은 접근성 개선이 있었습니다.

스크린 리더 사용자는 편집기를 열 때 댓글 범위가 포함되어 있는지 알림을 받습니다. 새로운 접근성 도움말 대화 상자(editor.action.accessibilityHelp)는 댓글 스레드 및 범위 간 이동을 위한 명령에 대한 통찰력을 제공합니다.

또한, 댓글 컨트롤이 이제 접근 가능합니다. 이 컨텍스트에서도 도움말 대화 상자(editor.action.accessibilityHelp)를 사용하여 무엇을 기대해야 하고 기능을 어떻게 활용해야 하는지 사용자에게 알립니다. 댓글 범위를 이동하기 위한 새로운 명령 Comments: Go to Next Commenting Range (⌘K ⌥⌘↓ (Windows, Linux Ctrl+K Ctrl+Alt+Down)) 및 Comments: Go to Previous Commenting Range (⌘K ⌥⌘↑ (Windows, Linux Ctrl+K Ctrl+Alt+Up))도 있습니다.

워크벤치

명령 팔레트의 유사 명령 결과

찾고 있는 명령을 찾는 것은 어려울 수 있습니다. VS Code만 해도 2000개 이상의 명령이 있습니다... 좋아하는 확장 프로그램을 사용하면 그 수는 훨씬 더 높아질 수 있습니다. 우리는 명령 팔레트가 제공하는 속도를 유지하면서도 사용자가 원하는 것을 찾도록 돕는 방법을 도입하고 싶었습니다. 이를 위해 명령 팔레트 결과에 "유사 명령"이라는 새로운 섹션을 포함하고 있습니다. 몇 가지 예는 다음과 같습니다.

이제 쿼리가 결과에 표시되기 위해 "퍼지" 일치를 할 필요가 없습니다. "Toggle Auto Save"와 같습니다.

'turn on auto save' and 'Toggle Auto Save' showed up in a similar results section

퍼지 결과가 있는 경우, 해당 결과는 맨 위에 표시되고 유사 명령이 그 뒤를 따릅니다.

user searched for 'change language' and 'Configure Display Language' showed up in a similar results section

확장 프로그램에서 제공하는 명령도 포함됩니다.

user searched for 'show git blame' and 'toggle file blame' showed up in a similar results section

정확한 명령 이름을 기억하는 데 어려움을 겪는 사용자에게 이 기능이 정말 도움이 될 것이라고 생각합니다... 솔직히 말해서, 우리 모두는 어떤 시점에서 그렇습니다.

이것은 이 새로운 기능의 첫 번째 버전일 뿐이며, 명령 이름의 정확한 단어를 일치시켜야 합니다. 미래에는 다음과 같은 개선 사항을 기대할 수 있습니다.

  • 명령의 숨겨진 설명에 기반한 명령 일치.
  • 동의어 처리 개선 ("toggle" 및 "turn on/off", "show" 및 "reveal" 등).

여러분의 의견을 들려주세요!

프로필 아이콘

이제 프로필에 아이콘을 연결할 수 있습니다. 이 아이콘은 Activity Bar에 있는 Manage 기어 아이콘 대신 표시됩니다. 여러 프로필이 있고 현재 활성화된 프로필을 빠르게 식별하고 싶을 때 유용합니다.

다음 그림은 새 프로필을 생성하는 동안 아이콘 선택 대화 상자를 보여줍니다.

Icon selection dialog

활성 프로필 아이콘이 Activity Bar에 표시됩니다.

Active profile icon in the Activity bar

편집기 탭 높이 밀도

window.density.editorTabHeight 설정을 통해 사용자는 탭 높이를 더 컴팩트한 크기로 줄일 수 있습니다.

기본 편집기 탭 높이

Editor tabs with default height

컴팩트한 편집기 탭 높이

Editor tabs with compact height

별도의 행에 고정된 편집기 탭

새 설정 workbench.editor.pinnedTabsOnSeparateRow가 추가되었습니다. 이 설정이 활성화되면 고정된 탭은 다른 탭 위에 별도의 행에 표시됩니다. 탭 행 간에 드래그하여 편집기 탭을 자동으로 고정하거나 고정을 해제합니다.

Moving editor tabs between the two tab rows

설정 편집기 검색 조정

설정 편집기는 이제 검색 쿼리에 대한 결과 수를 줄여 노이즈를 줄입니다. GitHub Copilot Chat 확장 프로그램이 설치된 경우, 키워드 일치로 찾은 설정 외에 Copilot Chat 설정의 상위 5개만 선택됩니다. (기존 15개에서)

검색 결과는 이제 설정 편집기의 목차에 따라 정렬되어 자주 사용되는 설정을 맨 위에 표시하고, 필터링된 확장 설정은 원래 순서대로 표시합니다. 검색 결과를 일치 유형 및 점수별로 다시 정렬하려면 workbench.settings.settingsSearchTocBehavior 설정을 "hide"로 설정하고 검색 쿼리를 지운 다음 다른 검색을 시작하십시오.

Searching "default formatter" in the Settings editor results in the editor.defaultFormatter setting appearing at the top.

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

편집기 작업의 오버플로 동작 개선

편집기 작업 수가 사용 가능한 공간을 초과하면 작업은 ... More Actions 메뉴로 오버플로됩니다. 이 로직이 개선되었으며, Close 또는 Split Editor와 같은 일부 필수 작업은 이제 예외 처리됩니다. 즉, 사용 가능한 공간이 제한적이더라도 항상 표시됩니다.

색 테마 선택기에서 테마 식별자 표시

색 테마 선택기에서 이제 색 테마의 현지화된 이름과 그 옆에 문자열 식별자가 표시됩니다. 이는 영어 외 언어 팩을 사용하지만 테마의 영어 이름만 아는 사용자를 돕기 위해 수행되었습니다.

Color Theme Picker in Korean displaying English theme identifiers next to the localized name

주석

주석 편집기는 GitHub Pull Request and Issues 확장 프로그램과 같이 풀 리퀘스트 주석을 표시하는 확장 프로그램에 사용됩니다.

주석 편집기 크기

주석 편집기는 이제 줄이 추가될 때 확장되며, 최대 높이는 주석이 있는 편집기의 크기에 따라 달라집니다.

Comment editor expanding as lines are added

해결되지 않은 주석에 대한 주석 보기 열기

comments.openView 설정에 새로운 값 firstFileUnresolved가 추가되었습니다. firstFileUnresolved로 설정하면 세션당 한 번, 해결되지 않은 주석이 있는 파일이 열릴 때 주석 보기가 열립니다.

해결된 주석 자동 축소

기본적으로 주석 스레드를 해결하면 자동으로 축소됩니다. 이 기능은 "comments.collapseOnResolve" 설정을 사용하여 비활성화할 수 있습니다.

편집기

저장 시 코드 액션 및 자동 저장

이제 편집기에서 자동 저장 시 코드 액션을 활성화할 수 있습니다. 이는 저장 시 또는 창 변경(onWindowChange) 또는 포커스 변경(onFocusChange) 시 자동 저장 시 코드 액션을 트리거합니다. 이 기능을 활성화하거나 현재 설정을 업데이트하려면 Editor: Code Actions On Save (editor.codeActionsOnSave)를 확인하고 각 코드 액션의 설정을 always로 변경하십시오.

설정 값도 업데이트되었으며, 현재 부울 값은 문자열 등가로 대체되어 사용 중단될 예정입니다.

옵션은 다음과 같습니다.

  • explicit: 명시적으로 저장할 때 코드 액션을 트리거합니다. true와 동일합니다.
  • always: 명시적으로 저장할 때와 창 또는 포커스 변경으로 인한 자동 저장 시 코드 작업을 트리거합니다.
  • never: 저장 시 코드 작업을 트리거하지 않습니다. false와 동일합니다.

부울 값은 이번 릴리스에서도 계속 지원됩니다.

노트북

노트북에서 기호로 이동

notebook.gotoSymbols.showAllSymbols가 활성화되면 Go to Symbol 빠른 선택 메뉴가 노트북의 모든 코드 기호로 채워집니다.

셀 실행 시 스크롤

notebook.cell.executeAndSelectBelowShift+Enter로 실행할 때 notebook.scrolling.revealNextCellOnExecute 설정을 사용하여 다음 셀이 얼마나 표시될지 구성할 수 있습니다.

  • fullCell - 전체 다음 셀 (기본값).
  • firstLine - 첫 번째 줄만.
  • none - 전혀 스크롤하지 않음.

아래는 "notebook.scrolling.revealNextCellOnExecute": "firstLine" 예시입니다.

공백 트리밍 지원

노트북은 이제 기존의 세 가지 공백 관련 설정을 존중합니다.

  • files.trimTrailingWhitespace - 파일을 저장할 때 후행 공백을 트리밍합니다.
  • files.trimFinalNewlines - 파일의 마지막 줄바꿈 문자 뒤의 모든 줄바꿈 문자를 트리밍합니다.
  • files.insertFinalNewline - 파일 끝에 마지막 줄바꿈 문자를 자동으로 삽입합니다.

이 설정은 자동 저장 포함, 저장 시 적용됩니다.

노트북 코드 액션 API 최종 확정

노트북은 이제 기여된 코드 액션을 완전히 지원하며, 이를 지원하기 위한 전용 코드 액션 종류가 있습니다. 확장 작성자가 notebook.source.로 시작하는 kind를 사용하여 액션을 정의하면, 저장 시 노트북 편집기는 각 셀이 아닌 노트북 전체에 대해 해당 액션을 실행합니다. 저장 시 실행될 코드 액션을 편집하려면 설정 편집기에서 Notebook: Code Actions on Save를 설정하거나 settings.json 파일에서 "notebook.codeActionsOnSave"를 편집할 수 있습니다.

이전의 부울 값은 열거형 등가로 대체되어 코드 액션에 대한 현재 사용 가능 설정이 업데이트되었습니다. 옵션은 다음과 같습니다.

  • "explicit": 명시적으로 저장할 때 코드 액션을 트리거합니다. true와 동일합니다.
  • "never": 저장 시 코드 액션을 트리거하지 않습니다. false와 동일합니다.

"always"라는 세 번째 옵션이 추가되어 편집기 코드 액션과 완전히 일치하게 됩니다. 이를 통해 사용자는 자동 저장 설정 onFocusChangeonWindowChange 시 노트북 코드 액션을 트리거할 수 있습니다.

언어

Perl 6/Raku

Perl 6 언어가 Raku(언어 식별자 raku)로 이름이 변경되었으며, Raku는 .raku 파일의 언어로 자동으로 선택됩니다.

디버그

JavaScript 디버거

WebAssembly 디버깅

JavaScript 디버거는 이제 DWARF 디버그 정보를 포함하는 경우 WebAssembly로 컴파일된 코드를 디버깅할 수 있습니다. 예를 들어, Emscripten을 사용하여 컴파일된 C++ 코드를 디버깅할 수 있습니다.

Debugger stopped on a breakpoint in C++ source code

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

이를 활성화하려면 내장 JavaScript 디버거에 연결되는 WebAssembly DWARF Debugging 확장을 설치해야 합니다. 이에 대한 자세한 내용은 Debugging WebAssembly에서 확인할 수 있습니다.

WebAssembly 디버깅은 Chromium 작성자의 C/C++ Debugging Extension을 기반으로 하며, 그들의 지원으로 가능해졌습니다.

호출 스택 보기 개선

Call Stack 보기의 메서드 및 함수에는 이제 함수(this) 컨텍스트 이름이 포함됩니다. 예를 들어, 클래스 Foo의 메서드 bar에 대한 호출 스택은 이제 Foo.bar로 표시됩니다.

원격 개발

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

이번 릴리스에서는 SSH와 유사하게 Tunnels를 사용하여 Dev Container에 연결하는 기능이 추가되었습니다. 이 새로운 기능에 대한 자세한 내용은 Remote Development 릴리스 노트에서 확인할 수 있습니다.

확장 프로그램 기여

GitHub Copilot

/tests 개선

Chat 보기와 GitHub Copilot Chat 확장 프로그램으로 제공되는 인라인 채팅에서 /tests를 개선했습니다. /test 슬래시 명령은 이제 사용 중인 테스트 프레임워크를 더 잘 감지하고 동일한 스타일로 새 테스트를 생성합니다. 또한, foo.py에 대한 test_foo.pybar.js에 대한 bar.test.js와 같이 새 테스트 파일 이름을 제안하는 데 훨씬 더 좋습니다.

인라인 채팅, 다중 턴 지원

인라인 채팅은 이제 현재 세션의 모든 프롬프트를 유지하여 이전 메시지를 참조하고 질문에 답할 수 있습니다.

아래 짧은 동영상에서 인라인 채팅은 사용자가 도쿄에 거주한다고 말한 것을 기억하고, 현지 시간 및 취리히와의 시간 차이를 계산하는 코드 스니펫을 제공합니다.

GitHub Copilot에 묻기, 이제 기본적으로 Chat 보기 사용

몇 달 전에 명령 팔레트에 Ask GitHub Copilot 옵션을 도입하여 명령 팔레트에서 쿼리를 받아 Copilot 채팅으로 열 수 있도록 했습니다. 이는 명령 팔레트가 유용한 답변을 제공하지 못할 경우에 유용합니다.

Ask GitHub Copilot이 사이드바의 Chat 보기 또는 Quick Chat에 열리는 선호하는 환경에 대한 피드백을 수집했습니다. 첫 경험을 더 친숙하게 만들기 위해 Chat 보기를 선택했습니다.

그래도 Ask GitHub Copilot이 Quick Chat에 열리기를 원하시면, askChatLocation 설정을 통해 동작을 변경할 수 있습니다.

"workbench.commandPalette.experimental.askChatLocation": "quickChat"

명령 팔레트 유사 명령

이번 반복에서 명령 팔레트에 유사 명령 기능을 출시했습니다. Copilot Chat 사용자는 Copilot AI를 사용하여 유사성을 결정할 수 있으므로 훨씬 더 나은 유사 명령 경험을 얻을 수 있습니다. 이러한 스마트 기능은 동의어와 의도를 돕고, 테스트에서 Copilot은 구어체 언어 전반의 유사성도 처리할 수 있었습니다. 명령 팔레트에서 찾고 있는 정확한 명령을 찾는 것이 그 어느 때보다 쉬워졌습니다!

Jupyter

확장 작성자를 위한 Jupyter 서버 제공자 API 최종 확정

Jupyter 확장 프로그램의 Jupyter 서버 제공 API가 최종 확정되었습니다. 확장 프로그램은 이 API를 사용하여 커널 선택기(Kernel Picker)에 표시될 사용자 지정 Jupyter 서버 목록을 제공할 수 있습니다.

API 사용 예시는 Jupyter Server Provider Sample에서 찾을 수 있습니다. JupyterHub extension도 이 동일한 API를 사용합니다.

npm 패키지 @vscode/jupyter-extension에는 모든 TypeScript 타입 정의가 포함되어 있습니다.

JupyterHub 확장 프로그램

이제 JupyterHub extension이 있어 JupyterHub에 로그인하고 VS Code의 노트북 또는 Interactive Window 내에서 커널과 코드를 실행할 수 있습니다. 이 확장 프로그램은 브라우저에서도 vscode.devgithub.dev에서 작동합니다.

이 새 확장 프로그램에 대한 문제가 있거나 피드백을 제공하고 싶으시면 JupyterHub extension GitHub repo에 이슈를 제기할 수 있습니다.

Selecting an existing JupyterHub server in the Kernel Picker

Python

Python 디버거 업데이트

몇 달 전에 발표된 Debugpy 확장이 Marketplace에서 더 쉽게 찾을 수 있도록 Python Debugger로 이름이 변경되었습니다.

이 확장 프로그램에는 새로운 사용자 설정 debugpy.debugJustMyCode가 포함되어 있습니다. 이 설정을 비활성화하면 모든 애플리케이션에 대해 시스템 또는 타사 라이브러리 코드로 단계별 실행할 수 있습니다 (기본적으로 디버거는 자체 Python 코드에 정의된 코드만 단계별 실행합니다). 이는 모든 프로젝트의 launch.json 디버그 구성에 수동으로 구성하는 대신 justMyCode를 모든 프로젝트에 대해 더 편리하게 비활성화하려는 사용자들에게 인기 있는 요청이었습니다.

체험해 보려면 Python Debugger 확장이 설치되어 있는지 확인하십시오. 그런 다음 설정 편집기(⌘, (Windows, Linux Ctrl+,))를 열고 "debugJustMyCode"를 검색한 다음 체크박스를 비활성화하십시오.

Searching "debugJustMyCode" in the Settings editor results in the debugpy.debugJustMyCode setting appearing at the top.

이제 launch.json 파일을 생성하면, justMyCode가 파일에 명시되지 않은 한, 확장 프로그램은 debugpy.debugJustMyCode 값을 기본으로 사용합니다. launch.jsonjustMyCode가 명시된 경우, 해당 값이 debugpy.debugJustMyCode 설정을 우선한다는 점에 유의하십시오.

Pylint 확장 프로그램의 변경 시 린트 옵션

기본적으로 Pylint 확장 프로그램은 파일을 저장할 때만 오류와 경고를 보고합니다. 이제 pylint.lintOnChange라는 새 설정이 있습니다. 이 설정을 true로 설정하면 파일을 저장할 필요 없이 입력할 때 오류와 경고를 보고하도록 확장 프로그램에 지시합니다.

Mypy 확장 프로그램 보고 범위 및 데몬 모드

Mypy Type Checker 확장 프로그램에 Mypy의 보고 범위와 데몬 사용 여부를 지정할 수 있는 두 가지 새 설정이 추가되었습니다.

첫 번째는 mypy-type-checker.reportingScope이며, file(기본값)로 설정하면 작업 공간에서 열린 파일에 대해서만 문제를 보고하고, workspace로 설정하면 작업 공간의 모든 파일에 대한 보고를 활성화합니다.

두 번째는 mypy-type-checker.preferDaemon이며, true로 설정하면 Mypy 자체(mypy) 대신 Mypy의 데몬(dmypy)을 사용하여 타입 검사를 수행합니다. 이는 일부 시나리오에서 훨씬 빠를 수 있습니다.

호출 인수 인레이 힌트 설정 업데이트

이전에는 Pylance의 부분 호출 인수 인레이 힌트 활성화 설정(python.analysis.inlayHints.callArgumentNames)은 호출 인수에 대한 타입 힌트를 활성화하거나 비활성화하기 위해 true 또는 false로만 설정할 수 있었습니다. 이 설정은 이제 호출 인수에 표시되는 타입 힌트에 대한 더 세분화된 제어를 허용하도록 수정되었습니다.

이제 partial로 설정하여 위치 전용키워드 전용 매개변수에 대한 힌트를 비활성화하거나, all로 설정하여 활성화하거나, off로 설정하여 완전히 비활성화할 수 있습니다.

Python 3.7 지원 중단

이전 2023년 7월 릴리스 블로그에서 언급했듯이, Python 확장 프로그램에서 공식 Python 3.7 지원을 중단했습니다. Python 3.7 지원을 적극적으로 제거할 계획은 없으므로, 앞으로도 Python 3.7에서 확장 프로그램이 비공식적으로 계속 작동할 것으로 예상됩니다.

기타 모든 Python 릴리스는 이제 연간 릴리스 주기를 따르므로, Python 릴리스가 EOL(지원 종료)에 도달하면 다음 해 첫 번째 확장 프로그램 릴리스에서 공식 지원을 중단할 것으로 예상됩니다 (예: Python 3.8은 2024년 10월에 EOL에 도달할 예정이므로 2025년 첫 번째 확장 프로그램 릴리스에서 공식 지원을 중단합니다).

GitHub Pull Requests 및 Issues

풀 리퀘스트 및 이슈 관리 기능을 제공하는 GitHub Pull Requests and Issues 확장 프로그램에 더 많은 진전이 있었습니다.

  • PR 검토에 대한 접근성이 개선되었습니다.
  • 브랜치가 게시되지 않았더라도 커밋이 생성 보기(Create view)에 표시됩니다.

확장 프로그램 0.74.0 릴리스의 변경 로그를 검토하여 다른 주요 내용을 확인하십시오.

미리보기 기능

가장 가까운 빠른 수정 키보드 단축키

커서가 해당 줄의 어느 위치에 있든지 상관없이 ⌘. (Windows, Linux Ctrl+.) (명령 ID editor.action.quickFix)에서 가장 가까운 빠른 수정을 활성화하는 새 설정이 있습니다.

이 명령은 빠른 수정을 통해 리팩터링되거나 수정될 소스 코드를 강조 표시합니다. 일반 코드 액션 및 수정이 아닌 리팩터링은 여전히 커서 위치에서 활성화할 수 있습니다. 이 기능을 활성화하려면 Code Action Widget: Include Nearby Quickfixes (editor.codeActionWidget.includeNearbyQuickfixes)를 확인하십시오.

Example of new Quick Fix behavior, showing activation on nearest errors, and showing how all Code Actions can still be utilized at the cursor location

소스 제어 동기화 보기

이번 마일스톤 릴리스에는 Source Control Sync 보기의 초기 버전이 포함되어 있습니다. 새 보기는 원격 브랜치에 푸시되지 않은 로컬 변경 사항(나가는 변경)과 원격 브랜치에서 로컬로 풀되지 않은 변경 사항(들어오는 변경)에 대한 자세한 정보를 제공합니다. 이 보기를 통해 브랜치를 게시하고 원격 브랜치와 변경 사항을 동기화(풀/푸시)할 수도 있습니다. 새 보기는 아직 실험 단계이며 사용자 피드백에 따라 다음 마일스톤에서 계속 개선할 예정입니다. scm.experimental.showSyncView 설정을 통해 새 보기를 표시할 수 있습니다. 시험해 보시고 이슈 #192290에 피드백을 제공해 주십시오.

Source Control Sync view showing a diff view of an incoming change

Command Center 및 디버그 도구 모음

Debug 도구 모음을 Command Center 내에 표시하는 새로운 실험적 설정이 있습니다. Command Center가 활성화되어 있는지 확인하고 debug.debugToolbarLocation 설정을 구성하십시오.

"debug.toolBarLocation": "commandCenter"

Debug controls inside the Command Center

테마: GitHub Light Colorblind (Beta) (vscode.dev에서 미리 보기)

확장 프로그램 작성

문자열 설정 유효성 검사를 위한 유니코드 문자 클래스 이스케이프 지원

유니코드 문자 클래스 이스케이프는 이제 정규 표현식에서 문자열 및 문자열 배열 설정을 유효성 검사하기 위해 지원됩니다. 즉, 문자열 및 문자열 배열 설정은 "\\p{Letter}+"와 같은 값의 pattern 필드를 지정할 수 있으며, 문자만 포함하는 문자열 값을 허용합니다.

현재 객체 설정의 문자열 값에 대해서는 유니코드 문자 클래스 이스케이프 지원을 사용할 수 없습니다.

터미널 메뉴에 기여

terminal/contextterminal/title/context에 기여할 수 있는 두 개의 새 메뉴가 있습니다. 이는 각각 터미널 컨텍스트 메뉴 및 터미널 탭 컨텍스트 메뉴에 항목을 추가합니다. 사용 예시

{
  "contributes": {
    "menus": {
      "terminal/context": [
        { "command": "terminalTest.sendText" }
      ],
      "terminal/title/context": [
        { "command": "terminalTest.sendText" }
      ]
    }
    }
}

새 env.onDidChangeShell 이벤트

env.shell 값이 변경될 때 발생하는 새 env.onDidChangeShell: Event<string> 이벤트가 있습니다.

keytar, VS Code에서 제거됨

지난 6월, SecretStorage API를 Electron의 safeStorage를 사용하도록 이전했으며, 이제 보관되고 유지 관리되지 않는 keytar 모듈을 VS Code에서 제거하는 중단 및 제거 계획을 포함했습니다. 일부 확장 프로그램이 여전히 keytar를 직접 가져오거나 요구했기 때문에 (SecretStorage API가 존재하기 전에는 권장되었지만, SecretStorage API가 출시된 후에는 그렇지 않음) 처음에는 keytar를 제거하지 않았습니다.

제품 원격 측정 및 keytar가 없는 Insiders 빌드에 따르면, keytar 사용량이 감소했으며 keytar를 VS Code에서 완전히 제거할 준비가 되었습니다.

내 확장 프로그램에 무엇을 의미하나요?

SecretStorage API를 사용하는 경우, 아무것도 아님. 6월부터 keytar에서 비밀 정보를 마이그레이션해 왔으므로, 2개월 동안 처리된 모든 비밀 정보는 이미 마이그레이션되었어야 합니다.

확장 프로그램에서 여전히 keytar를 직접 사용하는 경우, 몇 가지 고려할 옵션이 있습니다.

  • (권장) SecretStorage API를 VS Code에서 제공하는 ExtensionContext에서 사용하십시오. 이 API는 플랫폼 간 호환되며 VS Code가 지원하는 모든 플랫폼에서 작동합니다. 또한 VS Code 팀에서 유지 관리하며 계속 유지 관리될 예정이며, 현재 VS Code API의 일부입니다.
  • (권장하지 않음) keytar 모듈을 확장 프로그램과 함께 번들로 묶을 수 있습니다. keytar는 네이티브 노드 모듈이므로, 지원하려는 각 플랫폼에 대해 플랫폼별 확장 프로그램을 게시해야 한다는 점을 명심하십시오.

--disable-keytar가 --use-inmemory-secretstorage로 이름 변경됨

--disable-keytar 플래그는 SecretStorage API가 사용될 때 머신에 비밀 정보를 지속하는 것을 비활성화했습니다. 이는 주로 키링이 구성되지 않은 CI 환경에서 사용되었습니다. 왜냐하면 그렇지 않으면 키링 없이 SecretStorage API가 사용될 때 VS Code에서 오류가 발생했기 때문입니다.

keytar를 제거했으므로 이 플래그의 이름이 변경되어야 했습니다. 이제 --disable-keytar--use-inmemory-secretstorage로 대체되어 사용 중단되었습니다. 향후 --disable-keytar를 제거하는 것을 고려할 것이지만, 가까운 시일 내에 사라지지는 않을 것입니다.

마지막으로, keytar에서 빠르게 벗어나 사용자에게 VS Code의 비밀 정보에 대한 훌륭하고 안전한 경험을 보장해 준 모든 훌륭한 확장 작성자들에게 감사드립니다!

언어 서버 프로토콜

Language Server Protocol npm 패키지의 새 버전이 릴리스되었습니다 (protocol@3.17.5, client@9.0.1 및 server@9.0.1).

릴리스의 주요 내용은 다음과 같습니다.

  • 제안된 인라인 완성 요청 추가.

  • 제안된 범위 포맷 요청 추가.

  • 접이식 범위 새로 고침 제안 요청 추가. 이는 API가 이벤트 발생기를 노출해야 하고 호환성이 깨지는 변경이므로 접이식 범위 기능의 형태를 변경했습니다. 제공자에게 접근하려면 이제 다음 코드를 사용해야 합니다.

    client.getFeature(lsclient.FoldingRangeRequest.method).getProvider(document)?.provider;
    
  • 다양한 버그 수정.

엔지니어링

플로팅 편집기 창 탐색

워크벤치 창에서 편집기를 자체 창으로 꺼내는 방법을 탐색하기 시작했습니다. 이 기능은 가장 높은 투표 수를 받은 기능 요청이며, 10월에 Insiders 사용자들이 가지고 놀 수 있는 첫 번째 작동 버전을 제공할 계획입니다.

모든 창의 모든 편집기는 동일한 기본 편집기 모델을 사용하므로, 한 창에서 변경된 내용은 다른 모든 창에 실시간으로 반영됩니다. 플로팅 창에서 어떤 편집기 레이아웃이든 만들 수 있으며 원하는 편집기를 원하는 만큼 많은 창에서 열 수 있습니다.

첫 번째 작동 버전의 경우, 상태 표시줄도 플로팅 창에 포함되어 줄 번호 및 선택 범위와 같은 편집기 정보가 표시될 것으로 예상합니다. 향후 몇 달 동안 더 많은 개발 소식을 기대해 주세요!

vscode.dev, 이제 크로스 오리진 격리됨

vscode.dev에 크로스 오리진 격리가 활성화되었습니다. 이를 통해 공유 배열 버퍼와 같이 크로스 파일 TypeScript 지원, 웹에서의 Python 실행 및 일반적으로 vscode-wasm-wasi의 기반이 되는 강력한 새 기능이 활성화됩니다.

Settings Sync 문제 해결

클라우드와 로컬 머신 모두의 Settings Sync 활동과 로그를 모두 다운로드하는 새로운 개발자 명령 Developer: Download Settings Sync Activity를 추가했습니다. 이는 Settings Sync 문제를 해결하는 데 도움이 될 것입니다. 또한 다운로드된 활동을 탐색할 수 있는 새 보기를 만들었습니다. 명령 Settings Sync: Show Synced Data를 실행하고 SYNC ACTIVITY (DEVELOPER) 보기를 활성화하여 보기를 열 수 있습니다. 보기에서 Load Sync Activity 버튼을 선택하여 다운로드한 동기화 활동을 로드할 수 있습니다. 아래 그림과 같습니다.

Sync activity (developer) view with Load Sync Activity button

주요 수정 사항

  • 190679 테마 색상 icon.foreground가 일관되지 않고 .svg에서 작동하지 않음

감사합니다

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

이슈 추적

이슈 추적에 대한 기여

풀 리퀘스트

vscode 기여

vscode-css-languageservice에 대한 기여

vscode-html-languageservice에 대한 기여

vscode-languageserver-node에 기여

vscode-pull-request-github 기여

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