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

2019년 11월 (버전 1.41)

업데이트 1.41.1: 이 업데이트는 이러한 이슈를 해결합니다.

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


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

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

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

워크벤치

탐색기에서 폴더 압축

파일 탐색기에서 단일 자식 폴더를 압축된 형태로 렌더링합니다. 이러한 형태에서는 단일 자식 폴더가 결합된 트리 요소로 압축됩니다. 예를 들어 Java 패키지 구조에 유용합니다.

explorer.compactFolders 설정을 통해 이 동작을 제어합니다. 기본적으로 이 설정은 활성화되어 있습니다.

File Explorer compact folders

차이 보기에서 왼쪽 편집

편집 가능한 두 편집기(예: 파일 탐색기에서 두 파일을 비교하거나 전역 검색 및 바꾸기를 실행)를 비교하는 경우, 이제 왼쪽도 편집 가능하며 저장할 수 있습니다(⌘S (Windows, Linux Ctrl+S)).

Diff view left hand side edit

참고: ⌘S (Windows, Linux Ctrl+S)를 누르는 것이 번거롭다면 자동 저장을 활성화할 수 있습니다(파일 > 자동 저장).

Peek 편집기에서 저장

Peek 보기를 열고 입력하는 경우, 이제 포커스가 해당 포함된 편집기 내부에 있다면 ⌘S (Windows, Linux Ctrl+S)를 통해 변경 사항을 저장할 수 있습니다.

Saving in a Peek view

문제 패널

추가 필터

문제 패널에 더 많은 사전 정의된 필터가 추가되었습니다. 이제 문제 유형(오류, 경고, 정보)별로 필터링할 수 있으며 현재 활성 파일로 범위가 지정된 문제도 볼 수 있습니다.

Problems panel filters

테마: GitHub Sharp Dark, 글꼴: FiraCode

상태 표시줄에서 현재 문제 표시

이제 VS Code를 구성하여 상태 표시줄에 현재 문제 메시지를 표시할 수 있습니다. 이를 통해 추가 키보드 또는 마우스 제스처 없이 활성 파일에서 선택한 문제의 요약을 볼 수 있습니다.

참고: 이 기능을 활성화하려면 problems.showCurrentInStatus 설정을 활성화해야 합니다.

Current problem displayed in the Status bar

테마: GitHub Sharp Dark, 글꼴: FiraCode

유연한 필터 상자 레이아웃

문제 패널의 필터 상자가 이제 패널의 위치와 크기에 따라 위치를 조정합니다.

Problems panel filter box adjustable layout

테마: GitHub Sharp Dark, 글꼴: FiraCode

향상된 글꼴 렌더링 (Windows, Linux)

지난 마일스톤에서 Electron 6으로 업데이트했을 때 많은 사용자가 글꼴 렌더링이 저하되었다고 보고했습니다. 특히 글꼴이 이전만큼 부드럽게 렌더링되지 않았습니다. 편집기에서 즉시 문제를 해결했으며 1.40 복구 릴리스에서 수정 사항을 사용할 수 있게 되었습니다. 그러나 워크벤치의 다른 영역에서는 여전히 이상적인 글꼴 렌더링보다 못한 문제가 있었습니다.

이번 릴리스에서는 워크벤치의 더 많은 부분(Windows 및 Linux)에서 글꼴 렌더링을 개선했습니다. 아래 스크린샷은 이전과 이후 비교(확대하여 차이점을 보여줌)를 보여줍니다. 특히 워크벤치의 많은 트리 및 목록 요소가 회색조 안티앨리어싱을 사용하여 렌더링되었으며 이제 서브픽셀 안티앨리어싱으로 렌더링됩니다.

이전(왼쪽) 및 이후(오른쪽)

Improved font rendering before and after

워크벤치의 더 많은 부분에서 글꼴 렌더링을 개선할 계획입니다. 진행 상황을 확인하려면 텍스트 렌더링 문제 쿼리를 참조하십시오.

원격 시나리오에 대한 더 빠른 파일 읽기/쓰기 성능

파일 시스템이 원격이고 대기 시간이 높은 시나리오(예: 느린 연결로 브라우저에서 VS Code를 사용하거나 동일한 지역에 있지 않은 원격 호스트에 연결된 경우)에서 파일(텍스트 편집기에서)을 읽고 쓰는 작업이 이제 더 빨라져야 합니다. 읽기 및 쓰기에 대한 스트림 기반 구현으로 전환하여 통신 오버헤드를 크게 줄였습니다.

입력 시 검색 결과 업데이트

전체 텍스트 검색에서 결과가 입력하는 동안 업데이트됩니다. 이는 복잡한 정규식 쿼리를 구성하는 것과 같은 시나리오에서 특히 유용하며, 쿼리에 대한 빠른 피드백은 RegEx를 작성하는 데 도움이 될 수 있습니다.

여기서 즉각적인 피드백은 TypeScript의 선택적 체이닝 구문을 채택하기 위한 정규식 찾기 및 바꾸기 쿼리를 구성하는 데 도움이 됩니다.

Search result updates on type

테마: Noctis Hibernus, 글꼴: Hasklig

참고: search.searchOnTypefalse로 설정하여 이 기능을 비활성화할 수 있으며, 입력과 검색 간의 지연 시간은 search.searchOnTypeDebouncePeriod(기본값 300ms)로 조정할 수 있습니다.

검색 결과에 커서 추가

텍스트 검색의 모든 일치 항목에 커서를 추가하는 명령이 추가되었습니다. 검색 보기에서 파일의 검색 결과에 포커스가 있는 상태에서 ⇧⌘L (Windows, Linux Ctrl+Shift+L)를 누르면 해당 파일의 모든 일치 항목을 동시에 편집할 수 있습니다. 이는 찾기 위젯으로 단일 편집기 내에서 검색할 때 사용되는 키보드 단축키와 동일합니다.

Add cursors to search results

기본적으로 모든 검색 결과 확장

이전에는 전체 텍스트 검색이 단일 파일에서 10개 이상의 결과를 반환하면 결과 트리에서 축소되어 표시되었습니다. 그러나 때로는 특정 결과를 찾는 것이 어려웠으므로 이번 릴리스에서는 모든 결과가 확장되어 표시됩니다.

search.collapseResultsauto로 설정하여 이전 동작으로 되돌릴 수 있습니다.

편집기

오류, 경고 및 콘텐츠 변경에 대한 미니맵 장식

오류 및 경고가 이제 미니맵(코드 개요)에 인라인으로 강조 표시됩니다. minimap.errorHighlightminimap.warningHighlight 테마 색상을 사용하여 이러한 장식의 색상을 변경할 수 있습니다.

아래에서는 미니맵이 누락된 쉼표를 미묘하게 강조 표시하는 것을 볼 수 있습니다.

Minimap error and warning decorations

콘텐츠 변경 장식도 미니맵의 여백에 표시됩니다.

Minimap content change decorations

콘텐츠 변경 색상은 다음으로 수정할 수 있습니다.

  • minimapGutter.addedBackground
  • minimapGutter.modifiedBackground
  • minimapGutter.deletedBackground

scm.diffDecorations 설정을 사용하여 소스 제어 장식의 가시성을 변경할 수 있으며, 이 설정에는 다음과 같은 값이 있습니다.

  • all - 모든 위치에서 소스 제어 차이 장식을 표시합니다.
  • gutter - 편집기의 왼쪽 여백에만 표시합니다.
  • minimap - 미니맵 여백에만 표시합니다.
  • overview - 개요 눈금자에만 표시합니다.
  • none - 차이 장식을 표시하지 않습니다.

코드 탐색 대체 명령

VS Code는 이미 정의에 있을 때 **정의로 이동**을 선택하면 아무 작업도 수행하지 않았습니다. 이번 릴리스에서는 대신 대체 명령을 실행할 수 있습니다. 예를 들어, **정의로 이동**을 **참조로 이동**으로 매핑할 수 있습니다.

이는 editor.gotoLocation.alternativeDefinitionCommand 설정을 통해 사용자 정의됩니다. 예를 들어, **정의로 이동**의 대체 명령을 **선언으로 이동**으로, 그 반대로도 설정할 수 있습니다. 이전 동작을 선호하는 경우 설정을 비워둘 수 있습니다.

Peek, Go to, 및 모두 찾기 명령

각 **Peek** 명령에는 **Go to** 대응 항목이 있습니다. 예를 들어, **구현 미리 보기**와 **구현으로 이동**이 모두 있습니다. Peek 보기는 현재 편집기를 변경하지 않고 소스 코드를 빠르게 인플레이스에서 볼 수 있도록 합니다.

아래 비디오는 ICommandService 인터페이스의 모든 구현을 Peek 보기에서 확인하기 위해 **구현 미리 보기**를 사용하는 것을 보여줍니다.

Peek Implementations command

테마: GitHub Sharp, 글꼴: FiraCode

반면에 **구현으로 이동**은 탐색을 위한 것이며 구현으로 빠르게 이동합니다.

아래 비디오("editor.gotoLocation.multipleImplementations": "goto" 설정을 사용)는 ICommandService 인터페이스의 모든 구현으로 이동하기 위해 F12를 반복해서 누릅니다.

Go to Implementations command with F12

테마: GitHub Sharp, 글꼴: FiraCode

마지막으로 **모든 참조 찾기** 명령과 유사하게 이제 **모든 구현 찾기**가 있습니다. 구현을 편집기 옆에 안정적인 목록으로 표시합니다. 예를 들어 인터페이스의 모든 구현에 영향을 미치는 리팩터링을 수행할 때 할 일 목록으로 사용할 수 있습니다.

Find All Implementations in the Side bar

테마: GitHub Sharp, 글꼴: FiraCode

빵가루와 개요 보기의 언어별 필터링

지난 마일스톤에서 개요 보기 및 빵가루 탐색에서 변수와 같은 특정 유형을 필터링하는 기능을 추가했습니다. 이번 릴리스에서는 이 기능을 개선하고 언어별 필터링을 허용합니다. 예를 들어 TypeScript 변수는 표시하지 않지만 JavaScript 변수는 표시합니다.

아래에서는 JavaScript 파일과 TypeScript 파일에서 value 상수가 개요 보기에 표시되는 방식을 볼 수 있습니다.

Language-specific filter for Outline view

테마: GitHub Sharp, 글꼴: Fira Code

macOS의 IntelliSense 키보드 단축키

IntelliSense는 일반적으로 Ctrl+Space를 통해 트리거됩니다. 그러나 macOS에서는 여러 입력 소스가 구성된 경우 이 키보드 단축키가 운영 체제에서 사용됩니다. 이로 인해 혼란이 발생하고 사용자가 IntelliSense가 작동하지 않는다고 생각하는 경우가 많습니다.

이제 이 문제를 해결하는 두 가지 방법이 있습니다.

  • macOS용으로 추가한 새로운 Alt+Escape 키보드 단축키를 사용합니다.
  • 환경 설정 > 키보드 > 단축키 > 입력 소스를 통해 macOS 환경 설정에서 Ctrl+Space를 통한 입력 소스 전환을 비활성화합니다.

macOS Keyboard Shortcuts Input Sources option

화면 읽기 프로그램 출력

화면 읽기 프로그램이 한 번에 읽을 수 있는 편집기의 줄 수를 제어하는 새로운 설정 editor.accessibilityPageSize가 있습니다. 기본값인 10보다 큰 숫자에 대한 성능 영향이 있음을 유의하십시오.

화면 읽기 프로그램의 **모두 읽기** 명령을 사용하는 경우 editor.accessibilityPageSize를 100 또는 1000으로 설정하는 것이 좋습니다. 다음 마일스톤에서는 이 설정의 기본값을 변경할 것입니다.

새로운 괄호 일치 옵션

이제 "editor.matchBrackets": "near"를 구성하여 커서가 괄호의 어느 쪽에 있을 때만 일치하는 괄호를 강조 표시하는 이전 동작을 얻을 수 있습니다. 기본값은 always이며, 현재 커서 위치를 포함하는 일치하는 괄호를 강조 표시합니다.

새 자동 들여쓰기 옵션

editor.autoIndent 설정은 이제 다른 값을 사용할 수 있습니다. 이 설정은 Enter 누르기, Tab 누르기, 또는 줄 들여쓰기 및 내어쓰기와 같은 여러 기능에 영향을 미칩니다. 설정을 점점 더 구체적으로 만드는 "슬라이더"처럼 생각할 수 있습니다.

  • "none": Enter를 누르면 \n만 삽입됩니다.
  • "keep": Enter를 누르면 현재 줄의 들여쓰기를 유지합니다.
  • "brackets": 위의 모든 내용과 언어별 괄호 주위의 특수 로직.
  • "advanced": 위의 모든 내용과 onEnterRules를 통해 정의된 언어별 규칙 존중.
  • "full" (기본값): 위의 모든 내용과 indentationRules를 통해 정의된 언어별 규칙 존중.

코드 액션 메뉴 키보드 단축키

코드 액션 및 리팩터링 메뉴는 이제 존재하는 경우 사용자 지정 키 바인딩을 표시합니다.

A keybinding for extract constant

통합 터미널

최소 대비 비율

터미널에서 색상을 사용하는 애플리케이션은 까다로울 수 있으며 텍스트에 다음 색상을 사용할 수 있습니다.

  • 기본 전경색
  • 터미널 테마로 정의된 16가지 색상 팔레트
  • 240가지 고정 색상 세트
  • RGB 색상 (1600만)

문제는 애플리케이션이 기본 배경색 또는 전경색이 무엇인지, 그리고 애플리케이션에서 사용하는 색상과 좋은 대비를 이룰지 알지 못한다는 것입니다. 이 문제를 해결하기 위해 터미널은 이제 지정된 대비 비율을 충족하도록 텍스트의 전경색을 동적으로 변경할 수 있습니다.

1에서 21까지의 원하는 대비 비율로 전경색 설정

// 4.5 is recommended for baseline website accessibility
"terminal.integrated.minimumContrastRatio": 4.5

터미널 색상은 대비 비율이 충족되거나 전경색이 #000000 또는 #ffffff가 될 때까지 휘도를 늘리거나 줄입니다.

Terminal minimum contrast ratio setting

테마: Sapphire, 글꼴: Hack

새로운 실험적 WebGL 렌더러

터미널을 위한 새로운 WebGL 기반 렌더러를 사용할 수 있으며, 이는 이전 캔버스 기반 접근 방식에 비해 최대 900%*의 성능 향상을 제공합니다.

이 설정을 통해 새 렌더러를 사용하도록 선택할 수 있습니다.

"terminal.integrated.rendererType": "experimentalWebgl"

속도 향상은 여러 가지 요인에 기인하지만 주요 내용은 다음과 같습니다.

  • WebGL은 웹 플랫폼의 CanvasRenderingContext2D API를 통하는 것이 아니라 GPU와 더 직접적으로 통신할 수 있게 해줍니다.
  • 렌더러는 거의 전적으로 숫자와 타입 배열을 처리하며, 이는 매우 빠릅니다. 불필요한 가비지 컬렉션을 피하기 위해 객체 및 배열 생성도 최소화됩니다.
  • 모든 문자가 이제 텍스처 아틀라스에 캐시됩니다. 이는 ASCII 문자 및 제한된 스타일 세트만 캐시하는 이전 방식과 대조됩니다. 이는 동일한 문자를 반복해서 그리는 것이 훨씬 빠르다는 것을 의미합니다.

캔버스 렌더러를 사용할 때 사용자 하드웨어/환경에 따라 프레임 렌더링이 크게 달라지는 것을 관찰했습니다. 각 프레임은 일반적으로 1ms에서 40ms 사이이지만, 하드웨어 문제가 요인인 극단적인 경우에는 200ms를 초과할 수도 있습니다. 지금까지 WebGL은 훨씬 더 일관적인 것으로 보이며, 일반적으로 0.2ms에서 2ms 범위에 있습니다.

WebGL frames are much faster

이 기능이 통합되면 안정성이 개선될 것으로 예상합니다. 캔버스 렌더러에서는 브라우저가 GPU/캔버스에 문제가 있을 경우 CPU 렌더링으로 대체하려고 시도하지만, DOM 기반 렌더러가 훨씬 더 적합하기 때문에 우리는 그렇게 되는 것을 원하지 않습니다. WebGL을 사용하면 예상대로 작동하거나 심각하게 실패해야 합니다(WebGL 컨텍스트를 얻을 수 없음). 이 경우 DOM 렌더러로 대체할 수 있습니다.

렌더링에 시간이 훨씬 덜 소요되므로 CPU는 들어오는 데이터를 구문 분석하는 데 집중할 수 있어 더 많은 프레임을 렌더링하고 명령을 더 빠르게 실행할 수 있습니다. 다음 성능 데이터는 vscode 리포지토리 내에서 ls -lR을 실행하여 생성되었습니다.

Commands run faster on the WebGL renderer

새 렌더러는 또한 캔버스 렌더러의 성가신 버그를 수정합니다. 이 버그는 문자가 셀 크기보다 클 때 측면이 잘리는 현상이 발생했습니다. 이 문제는 Linux의 특정 글꼴에서 밑줄과 함께 가장 흔하게 관찰되었습니다.

* 벤치마크에 대한 자세한 내용은 xtermjs/xterm.js#1790에서 확인할 수 있습니다.

소스 제어

Git: git.ignoredRepositories의 상대 경로

git.ignoredRepositories 설정은 이제 상대 경로를 지원합니다. 이는 작업 영역 설정을 구성하고 VS Code에서 특정 리포지토리를 무시하고 싶을 때 유용합니다.

Git: FileSystemProvider 채택

Git 확장은 이제 FileSystemProvider API를 사용합니다. 이 API는 특정 인코딩 문제를 해결하는 것 외에도 Git 리포지토리의 이전 버전 파일을 더 효율적이고 안정적으로 노출하는 방법을 제공합니다.

언어

HTML 미러 커서

VS Code는 이제 HTML 태그를 편집할 때 "미러 커서"를 추가합니다. 이 동작은 기본적으로 활성화된 html.mirrorCursorOnMatchingTag 설정으로 제어됩니다.

이 기능은 커서가 HTML 태그 이름 범위로 이동할 때 일치하는 태그에 다중 커서를 추가하여 작동합니다. 다중 커서 모드와 마찬가지로 단어 단위 삭제 또는 단어 단위 선택을 사용할 수 있습니다. 미러링된 커서는 커서가 태그 이름 범위를 벗어나면 제거됩니다.

하나의 특별한 경우는 열린 태그 끝에 있는 경우 스페이스를 입력하는 것입니다. 예를 들어 <div|></div|>와 같은 div 끝입니다. 이 경우 VS Code는 닫힌 태그 이름 뒤에 삽입된 공백을 제거하고 미러 커서 모드를 종료하므로 HTML 속성을 계속 편집할 수 있습니다.

HTML mirror cursor

테마: Nord, 글꼴: Input Mono

HTML 태그 이름 바꾸기

이제 F2를 사용하여 HTML의 열린/닫힌 태그 쌍의 이름을 바꿀 수 있습니다.

HTML rename tag

자동 완성 CSS 속성의 순위

CSS 자동 완성은 이제 속성을 인기도별로 순위를 매깁니다.

CSS suggestions ranked by popularity

사용량 데이터는 ChromeStatus.org에서 가져옵니다.

Sass 모듈 지원

Sass는 최근 새로운 모듈 시스템을 도입했습니다.

SCSS 파일에서 Sass 모듈에 대한 구문 강조 표시 지원과 언어 기능 지원을 추가했습니다. 언어 기능에는 다음이 포함됩니다.

  • @use@forward의 자동 완성.
  • @use@forward 경로에 대한 경로 완성.
  • sass:mathsass:color와 같은 Sass 내장 모듈의 자동 완성.
  • @use@forward 가져오기 경로에 대한 문서 링크.

Sass module support

JSON

대규모 JSON 파일의 성능 문제를 피하기 위해 JSON 언어 지원은 이제 접힘 영역 및 문서 기호(개요 보기 및 빵가루 탐색용)의 수에 상한선이 있습니다. 기본적으로 이 한도는 5000개 항목이지만 json.maxItemsComputed 설정을 사용하여 한도를 변경할 수 있습니다.

JSON large file warning

TypeScript 3.7

VS Code는 이제 TypeScript 3.7.3을 제공합니다. 이 주요 업데이트는 선택적 체이닝, nullish 병합, 어설션 함수를 포함한 TypeScript 언어 개선 사항과 JavaScript 및 TypeScript 모두를 위한 몇 가지 새로운 도구 기능을 제공합니다. 언제나 그렇듯이 이 릴리스에는 몇 가지 중요한 버그 수정 사항도 포함되어 있습니다.

TypeScript 3.7 기능에 대한 자세한 내용은 TS 3.7 블로그 게시물에서 확인할 수 있습니다.

JavaScript 및 TypeScript에 대한 선택적 체이닝 지원

TypeScript 3.7 덕분에 VS Code는 이제 JavaScript 및 TypeScript 모두에 대해 선택적 체이닝을 바로 지원합니다. 여기에는 구문 강조 표시 및 IntelliSense가 포함됩니다.

Optional chaining and nullish coalescing

또한, VS Code는 선택적 속성에 대한 완료를 수락할 때 ?.를 자동으로 삽입할 수 있습니다.

Selecting a completion on a potentially undefined value automatically inserts an optional chain

?.의 자동 삽입은 엄격한 null 검사가 활성화되어 있는지 여부에 따라 달라집니다. 자동 ?. 삽입은 "typescript.suggest.includeAutomaticOptionalChainCompletions" 또는 "javascript.suggest.includeAutomaticOptionalChainCompletions" 설정을 사용하여 비활성화할 수 있습니다.

TypeScript에 대한 인터페이스 추출 리팩터링

새로운 **인터페이스로 추출** 리팩터링을 사용하면 인라인 유형을 인터페이스로 빠르게 추출하여 재사용할 수 있습니다.

Selecting the new 'extract interface' refactoring

아래에서는 'keyes'에서 'Neural' 인터페이스가 추출된 것을 볼 수 있습니다.

After extracting the 'Neural' interface out of 'keyes'

JavaScript 및 TypeScript에 대한 세미콜론 형식 옵션

새로운 javascript.format.semicolonstypescript.format.semicolons 서식 설정은 서식 지정기가 JavaScript 및 TypeScript 파일에서 세미콜론을 처리하는 방법을 제어할 수 있게 합니다.

유효한 세미콜론 서식 설정 값은 다음과 같습니다.

  • ignore - 세미콜론을 추가하거나 제거하지 않습니다(기본값).
  • insert - 문 끝에 세미콜론을 삽입합니다.
  • remove - 불필요한 세미콜론을 제거합니다.

호출되지 않은 함수 검사

VS Code는 조건문에서 함수 호출을 잊어버린 경우 경고를 표시합니다.

다음 TypeScript 스니펫을 고려하십시오.

import * as fs from 'fs';

fs.stat('/path/to/file', function(err, stats) {
  if (stats.isDirectory) {
    handleDirectory(stats);
  }
});

위 예는 Node.js fs.stat API를 사용하여 파일에 대한 정보를 가져옵니다. 하지만 버그가 있습니다! .isDirectory는 속성이 아니라 함수입니다! 이는 handleDirectory가 디렉터리인 경우뿐만 아니라 의도한 대로 모든 파일에 대해 호출된다는 것을 의미합니다. 함수 isDirectory가 정의되어 true로 평가되기 때문입니다.

VS Code can alert when you forget to call a function

이 진단은 엄격한 null 검사가 활성화된 경우에만 표시된다는 점에 유의하십시오.

디버깅

디버그 시작 보기

새로운 디버그 시작 보기를 도입하여 사용자가 새 작업 영역에서 디버깅을 시작하고 구성하기 쉽게 만들었습니다. 활성 파일을 기반으로 적절한 디버그 확장을 선택하고 애플리케이션을 디버그하거나 실행할 수 있도록 합니다. 더 복잡한 디버그 및 실행 구성을 위해서는 launch.json 파일을 구성하는 것이 여전히 가장 좋습니다.

아래에서는 Express JavaScript 애플리케이션 디버깅을 빠르게 시작한 다음 더 많은 제어가 필요한 경우 launch.json 파일을 만드는 것을 볼 수 있습니다.

Debug Start view

호출 스택 보기에서 프레임 다시 시작

**프레임 다시 시작** 액션의 검색 가능성을 개선하기 위해, 이제 호출 스택 보기에서 호버 시 표시되는 인라인 액션이 있습니다. 프레임 다시 시작은 중단점이 히트된 후 이전 소스 코드를 다시 실행하는 편리한 방법입니다. 디버그 확장이 프레임 다시 시작을 지원하지 않으면 이 액션이 표시되지 않습니다.

Restart frame button

디버그 콘솔에 입력 및 출력 표시

디버그 콘솔에서 입력과 출력을 더 잘 구분하기 위해 왼쪽에 입력 > 및 출력 < 장식을 추가했습니다.

Debug console input and output decorations

인라인 중단점 표시

새 설정 debug.showInlineBreakpointCandidates는 디버깅 중에 편집기에서 인라인 중단점 후보 장식을 표시할지 여부를 제어합니다. 기본적으로 표시됩니다.

미리 보기 기능

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

검색 에디터

이번 마일스톤에서는 검색 결과를 전용 편집기에 표시하는 작업을 시작했습니다. 이를 통해 검색 결과를 볼 수 있는 공간이 더 많아지고 여러 검색 결과 모음을 동시에 유지할 수 있습니다.

이번 릴리스에서는 검색 편집기에서 다음을 수행할 수 있습니다.

  • 정의로 이동 계열 명령(정의 미리 보기정의를 옆으로 열기 포함)을 사용하여 결과로 이동합니다.
  • 결과 목록을 업데이트하기 위해 검색을 다시 실행합니다.
  • 결과를 둘러싼 소스 코드 줄을 봅니다.
  • 결과를 디스크에 저장하여 나중에 참조하거나 소스 제어에서 추적할 수 있습니다.

다음 릴리스에서는 계속해서 기능을 추가하고 사용성을 높일 것입니다.

Search Editor

테마: A Touch of Lilac, 글꼴: Hasklig

참고: search.enableSearchEditorPreviewtrue로 설정하여 이 기능을 미리 볼 수 있습니다.

호출 계층 구조 보기

호출 계층 구조 API는 Stable 버전에서 사용할 수 있으며 언어 확장 작성자가 이를 구현하고 있으므로 호출 계층 구조 보기를 추가했습니다. 이는 **호출 계층 구조 미리 보기** 보기를 보완하며 **모든 참조 찾기** 및 **모든 구현 찾기**와 동일한 사이드바 보기를 공유합니다. 언어 확장이 호출 계층 구조 API를 지원하면 컨텍스트 메뉴 또는 명령 팔레트에서 **호출 계층 구조 표시**를 선택하여 보기를 볼 수 있습니다.

Call Hierarchy view

테마: GitHub Sharp, 글꼴: FiraCode

호출 계층 구조 보기에서는 심볼에서 호출하는 쪽과 호출되는 쪽을 드릴다운할 수 있습니다. 활성 편집기에서 호출을 강조 표시하고, 모든 하위 항목에서 보기의 부모를 다시 지정할 수 있으며, 이전 실행 기록을 유지합니다.

JavaScript 디버거

Node.js 및 Chrome용 새 디버거를 작업 중입니다. 야간 확장 기능 js-debug-nightly를 설치하고 설정을 다음과 같이 업데이트하여 드롭인 교체로 사용할 수 있습니다.

{
  "debug.chrome.useV3": true,
  "debug.node.useV3": true
}

새 디버거를 사용하기 위해 기존 실행 구성을 변경할 필요는 없습니다.

이 디버거는 웹 워커를 디버그하고 단계별로 실행하는 기능과 같은 다양한 새 기능을 제공합니다.

An animation showing stepping through postMessage calls to and from a webworker

테마: Earthsong, 글꼴: Fira Code

...추가 구성 또는 플래그 없이 npm 스크립트를 디버그...

An animation dispatching the "run npm script" command, selecting "npm start", and then hitting a breakpoint in an executed script

...그리고 더 많은 기능! 문제가 발생하면 이슈를 제출해 주십시오.

확장 프로그램 기여

원격 개발

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

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

  • Dev Containers: 샘플 리포지토리(예: vscode-remote-try-python)를 컨테이너에서 더 쉽게 사용해 볼 수 있습니다.
  • Dev Containers: 컨테이너 생성 시 성능이 향상되었고 devcontainer.json에 대한 새 옵션이 추가되었습니다.
  • WSL: Surface Pro X와 같은 Windows 10 ARM 기반 PC에서 지원됩니다.
  • 원격 탐색기 이제 특정 원격 유형에 사용 가능한 보기를 범위 지정할 수 있습니다.

원격 개발 릴리스 정보에서 새 확장 기능 및 버그 수정에 대해 알아볼 수 있습니다. Remote Development release notes.

또한 VS Code를 사용한 컨테이너 검사에 대한 최근 블로그 게시물을 읽고 업데이트된 C++ 및 WSL을 VS Code에서 사용하기 튜토리얼을 시도해 볼 수 있습니다.

ESLint

ESLint 확장 기능 개선

  • ESLint 6.x에 대한 더 나은 지원 - 대부분의 경우 ESLint 6.x를 사용할 때 작업 디렉토리를 구성할 필요가 없습니다.
  • 향상된 TypeScript 감지 - ESLint 내에서 TypeScript가 올바르게 구성되면 VS Code의 eslint.validate 설정을 통해 추가 구성이 필요하지 않습니다. HTML 및 Vue.js 파일에서도 마찬가지입니다.
  • Glob 작업 디렉토리 지원 - 복잡한 폴더 구조를 가지고 eslint.workingDirectories를 통해 작업 디렉토리를 사용자 지정해야 하는 프로젝트는 이제 모든 프로젝트 폴더를 나열하는 대신 glob 패턴을 사용할 수 있습니다. 예를 들어 code-*code-로 시작하는 모든 프로젝트 폴더와 일치합니다. 또한 확장은 이제 기본적으로 작업 디렉토리를 변경합니다. 새 !cwd 속성으로 이 기능을 비활성화할 수 있습니다.
  • 개선된 저장 시 자동 수정 - 저장 시 자동 수정 기능이 VS Code의 저장 시 코드 동작 인프라에 통합되어 한 번의 라운드에서 가능한 모든 수정을 계산합니다. editor.codeActionsOnSave 설정을 통해 사용자 지정할 수 있습니다. 이 설정은 ESLint 특정 속성 source.fixAll.eslint를 지원합니다. 확장 기능은 일반 속성 source.fixAll도 존중합니다.

아래 설정은 ESLint를 포함한 모든 제공업체에 대해 자동 수정을 활성화합니다.

    "editor.codeActionsOnSave": {
        "source.fixAll": true
    }

반대로 이 구성은 ESLint에 대해서만 활성화합니다.

    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    }

다음과 같이 ESLint를 선택적으로 비활성화할 수도 있습니다.

    "editor.codeActionsOnSave": {
        "source.fixAll": true,
        "source.fixAll.eslint": false
    }

vscode-scss

vscode-scss 확장은 SCSS 변수, 믹스인 및 함수에 대한 파일 간 언어 지원을 제공합니다. 이번 마일스톤에서는 새로운 릴리스인 0.8.0 개발을 지원했습니다.

새 버전은 다음을 개선합니다.

  • 향상된 import 경로 확인
  • 자동 완성되는 색상 변수에 대한 색상 미리보기
  • 향상된 성능

확장 프로그램 작성

Figma 디자인 툴킷

확장 프로그램 저자가 확장 프로그램에 대한 경험을 더 잘 설계하도록 돕기 위해 Figma 디자인 툴킷을 만들었습니다. 툴킷에 액세스하고 사용하는 방법에 대한 지침이 포함된 GitHub의 툴킷 리포지토리를 확인하세요.

아래는 포함된 구성 요소의 예시입니다.

Figma design toolkit components

모든 구성 요소는 크기 조정 및 편집이 가능해야 합니다.

Editing Figma components

문제가 발생하거나 특정 구성 요소에 대한 요청이 있는 경우 툴킷 리포지토리에 이슈를 만들어 요청을 분류하고 추적할 수 있도록 해주세요.

디버그 아이콘 색상 토큰

디버그 보기용으로 새로운 색상 토큰 세트를 추가했습니다.

디버그 도구 모음

  • debugIcon.startForeground
  • debugIcon.continueForeground
  • debugIcon.disconnectForeground
  • debugIcon.pauseForeground
  • debugIcon.restartForeground
  • debugIcon.stepBackForeground
  • debugIcon.stepIntoForeground
  • debugIcon.stepOutForeground
  • debugIcon.stepOverForeground
  • debugIcon.stopForeground

Debug toolbar colors

테마: Min Dark, 글꼴: Input Mono

디버그 중단점

  • debugIcon.breakpointForeground
  • debugIcon.breakpointDisabledForeground
  • debugIcon.breakpointUnverifiedForeground
  • debugIcon.breakpointStackframeForeground
  • debugIcon.breakpointCurrentStackframeForeground

Debug breakpoint colors

테마: Min Dark, 글꼴: Input Mono

작업 영역 파일 이벤트

파일 및 폴더 변경 시 새로운 이벤트가 있습니다.

  • vscode.workspace.on[Will|Did]CreateFile
  • vscode.workspace.on[Will|Did]RenameFile
  • vscode.workspace.on[Will|Did]DeleteFile

이 이벤트는 파일이 생성, 이름 변경 또는 삭제될 때 발생하지만, 디스크의 파일이 변경되거나 vscode.workspace.fs API를 통해 파일이 수정될 때는 발생하지 않습니다.

이러한 이벤트의 가능한 사용 사례는 언어 서버이며, 파일 이름을 변경하기 전에 파일 내용을 업데이트하거나 파일 삭제/생성 후 프로젝트 파일을 업데이트할 수 있습니다.

SnippetString

SnippetString 유형에 이제 선택 요소에 대한 빌더 메서드가 있습니다.

엄격한 getWordRangeAtPosition

TextDocument.getWordRangeAtPosition API는 이제 더 엄격해졌으며, 빈 문자열 일치를 결과로 하는 잘못된 정규식을 무시하는 대신 오류를 발생시킵니다.

extensionKind에 대한 문자열 유형 사용 중단

확장 프로그램 작성자는 package.jsonextensionKind 속성을 사용하여 원격 시나리오에서 확장 프로그램이 실행되어야 하는 위치를 지정할 수 있습니다. 릴리스(1.40)에서는 이 값을 문자열 또는 배열로 사용할 수 있었습니다. 이번 릴리스부터 이 속성은 배열 값만 지원하며 문자열 사용은 중단되었습니다. 자세한 내용은 원격 개발 설명서를 참조하세요.

DAP 소스를 URI로 변환

VS Code 확장 프로그램 API는 편집기에서 열 수 있는 리소스를 참조할 때 문서 URI를 사용하는 반면, Debug Adapter ProtocolSource 설명자에 기반합니다. 이번 마일스톤에서는 두 세계를 연결하는 API를 추가했습니다. debug.asDebugSourceUri 함수는 DAP Source 객체에서 URI를 생성합니다. 이를 통해 DAP Source를 VS Code 편집기로 쉽게 열 수 있습니다.

export async function openDAPSource(
  session: vscode.DebugSession,
  source: DebugProtocol.Source
) {
  const uri = vscode.debug.asDebugSourceUri(source, session);
  vscode.window.showTextDocument(vscode.workspace.openTextDocument(uri));
}

제안된 확장 API

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

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

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

CodeAction.disabled

VS Code는 확장 프로그램이 Code Actions를 사용하여 리팩터링 기능을 구현하도록 권장합니다. 그러나 사용자가 확장 프로그램이 지원하는 리팩터링을 발견하고 특정 선택에 대해 특정 리팩터링을 사용할 수 없는 이유를 이해하기 어려울 수 있습니다. CodeAction.disabled API 제안은 확장 프로그램이 리팩터링을 더 쉽게 발견하도록 돕는 것을 목표로 합니다.

CodeAction에 대한 제안된 .disabled 속성은 특정 Code Action을 사용할 수 없는 이유를 설명하는 사람이 읽을 수 있는 문자열입니다. 다음은 CodeAction 샘플 확장 프로그램에서 .disabled를 사용하는 예시입니다.

import * as vscode from 'vscode';

export class Emojizer implements vscode.CodeActionProvider {

    public provideCodeActions(document: vscode.TextDocument, range: vscode.Range): vscode.CodeAction[] | undefined {
        const action = new vscode.CodeAction(`Convert to ${emoji}`, vscode.CodeActionKind.Refactor.append('emojize'));

        if (!this.isAtStartOfSmiley(document, range)) {
            // Tell the user why our action is not available
            action.disabled = 'Selection is not currently on a :)';
            return [action];
        }

        action.edit = new vscode.WorkspaceEdit();
        action.edit.replace(document.uri, new vscode.Range(range.start, range.start.translate(0, 2)), '😀');
        return action;
    }

    ...
}

사용자가 키 바인딩을 통해 비활성화된 Code Action을 적용하려고 하면 VS Code는 사용자에게 .disabled 오류 메시지를 표시합니다.

Showing the '.disabled' error in the editor

또한, 발견 가능성을 높이기 위해 비활성화된 Code Action은 리팩터소스 동작 컨텍스트 메뉴에서 흐리게 표시됩니다.

A '.disabled' Code Action in the Refactor menu

참고: 비활성화된 동작은 최상위 전구 메뉴에 표시되지 않습니다.

확장 프로그램에서 Code Action을 사용하는 경우 CodeAction.disabled가 유용하고 구현할 수 있는 기능인지 알려주세요.

사용자 지정 편집기 편집 기능

이번 반복에서는 사용자 지정 편집기 제안에 대한 작업을 계속했습니다. 다시 말해, 사용자 지정 편집기는 특정 파일 유형에 대해 VS Code의 일반 텍스트 편집기 대신 사용할 수 있는 웹뷰 기반 보기입니다. VS Code 1.41부터 사용자 지정 편집기는 VS Code의 실행 취소/다시 실행 및 저장 기능과 통합될 수 있어 시각적 및 WYSIWYG 편집기와 같은 흥미로운 사용 사례를 많이 가능하게 합니다.

현재 API 제안은 vscode.proposed.d.ts에서 찾을 수 있으며, 텍스트 및 이진 파일에 사용자 지정 편집기를 사용하는 것을 보여주는 매우 간단한 확장 샘플도 준비했습니다.

사용자 지정 편집기에 관심이 있다면 현재 제안에 대한 피드백을 공유하고 구현할 수 있는지 알려주세요.

의미론적 토큰 제공자

의미론적 토큰 제공자에 대한 새로운 제안 API를 추가했습니다. 이 새로운 API를 통해 확장 프로그램은 TextMate 기반 구문 강조를 풍부하게 하는 데 사용되는 추가 토큰 정보를 제공할 수 있습니다.

각 의미론적 토큰은 토큰 유형과 여러 토큰 수정자로 범위를 주석 처리합니다. 예를 들어, variable 유형과 membermodification 수정자는 멤버 변수에 대한 쓰기 액세스를 설명합니다. 그런 다음 토큰 유형과 수정자는 편집기에서 스타일을 추가하는 데 사용됩니다.

스타일은 색상 테마와 사용자 설정 모두에서 구성할 수 있습니다.

    "editor.tokenColorCustomizationsExperimental": {
        "variable.member": {
            "foreground": "#35166d"
        },
        "*.modification": {
            "fontStyle": "underline"
        }
    }

이 기능에 관심이 있다면 현재 제안에 대한 피드백을 받고 초기 구현을 장려하고 싶습니다.

전체 샘플은 vscode-extensions-samples 리포지토리에서 사용할 수 있습니다.

언어 서버 프로토콜

LSP를 통해 호출 계층 구조 보기에 대한 제안 지원이 추가되었습니다.

브라우저 지원

Firefox 및 Safari(macOS 및 iPadOS)에 대한 지원 개선

이번 마일스톤에서는 Firefox 또는 Safari를 사용할 때 브라우저에서 실행되는 VS Code의 환경 개선에 중점을 두었습니다. 두 브라우저 모두에 대한 많은 문제를 해결했습니다 (Firefox, Safari). Firefox에서는 아직 업스트림 차단으로 인해 전체 키보드 단축키 지원이 되지 않으며, 자세한 내용은 추적 이슈 #85252에서 확인할 수 있습니다.

또한 iPadOS의 Safari에서 기본적인 VS Code 기능을 사용할 수 있도록 많은 이슈를 수정했습니다. 핵심 UI 요소가 터치 및 포인터 장치에 접근 가능하게 되었습니다. 그러나 미리 정의된 키 바인딩(EscapeFunction 키), 호버, 터치 친화적인 UI/UX와 관련된 주요 차단기가 여전히 존재합니다. 자세한 내용은 이슈 #85254를 참조하세요.

브라우저에서 실행되는 더 많은 기능 사용 가능

지난 마일스톤에서는 리포지토리에서 yarn web을 실행하여 브라우저에서 VS Code를 실행하도록 설정하는 지원을 도입했습니다. 이 설정은 여전히 브라우저에서 이슈를 테스트하는 데 사용되며 개발용으로는 적합하지 않습니다.

이번 마일스톤에서는 테스트할 수 있는 더 많은 기능을 추가했습니다.

  • 디버그
  • 검색
  • 작업
  • 문제

새로운 기능이 작동하는 모습은 다음 비디오에서 확인할 수 있습니다.

VS Code running in a browser

참고: 이 설정은 심각한 개발에는 사용하지 마십시오. 브라우저 환경 전반의 경험을 개선하기 위해 커뮤니티가 VS Code에 변경 사항을 기여하도록 하는 것이 목적입니다.

엔지니어링

yum 리포지토리에서 Insiders 사용 가능

Insiders 빌드를 이제 yum 리포지토리에서 사용할 수 있으며 apt 리포지토리와 마찬가지로 자동으로 게시됩니다. 리포지토리를 설정하고 sudo dnf install code-insiders를 사용하여 설치하려면 웹사이트의 지침을 따르세요.

Monaco Editor에 대한 연속 빌드

이번 반복에서는 Monaco Editor에 대한 연속 빌드 및 테스트 파이프라인을 추가했습니다. VS Code 리포지토리 메인 브랜치에서 Monaco Editor 코어를 빌드하고 가능한 한 빨리 잠재적인 버그나 예상치 못한 변경 사항을 파악하기 위해 상태 테스트를 수행합니다.

주요 수정 사항

  • 51039: Diff 편집기가 다른 탭의 왼쪽 편집기를 닫을 때 닫힙니다.
  • 83746: Web: 복합체 및 보기(활동 표시줄, 패널)를 드래그 앤 드롭할 수 없습니다.
  • 80026: launch.json의 회색 속성이 혼란스럽습니다. 제거해주세요.
  • 83449: 접근성: 접근성 모드에서 Ctrl+Right(CursorWordAccessibilityRight)는 끝이 아닌 다음 단어의 시작으로 이동해야 합니다.
  • 83753: console.debug.wordWrap 비활성화 시 줄 바꿈 및 공백이 제거됩니다.
  • 85086: search.usePCRE2가 비활성화된 경우 전역 검색에서 역참조가 지원되지 않습니다.
  • 36219: Git: "선택한 범위 스테이징" 명령이 UTF-8로 인코딩을 변경합니다.

감사합니다

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

이슈 추적에 대한 기여

vscode 기여

  • Amir Omidi (@aaomidi): isNaN 대신 === NaN 사용 PR #83790
  • Anirudh Rayabharam (@anirudhrb): Git: 빈 리포지토리에서 스테이징 시 오류 수정 PR #82995
  • Anthony Dresser (@anthonydresser): git 훅에 필터 추가 (개발 편의성) PR #85159
  • Jakub Chodorowicz (@chodorowicz): markdown 파일에 대한 Monokai 테마 개선 PR #85467
  • DiamondYuan (@DiamondYuan): fix: CustomEditoInputFactory -> CustomEditorInputFactory 오타 수정 PR #85090
  • George Batalinski (@georgebatalinski): fix(aria-expanded) 하위 메뉴에 aria 속성 추가 PR #79775
  • John Murray (@gjsjohnmurray)
    • 검색 결과 파일 이름 컨텍스트 메뉴의 "탐색기에서 보기"를 "측면 표시줄에서 보기"로 이름 변경 PR #83418
    • 개요 "유형별 정렬" -> "범주별 정렬" PR #83845
  • James Inkster (@Grommers00): #84080 수정, 컨트롤+시프트+C 및 컨트롤+시프트+V를 터미널에 추가 PR #84438
  • Vladislav Hadzhiyski (@hadzhiyski)
    • #83940 수정 PR #84414
    • #83646 Webview: 프로토콜 루트 외부 리소스 로드 불가", .md 소스가 네트워크 공유인 경우 PR #84702
  • Hung-Wei Hung (@hunghw): #83818 수정 - enablePreviewFromQuickOpen의 설명 다듬기 PR #83895
  • Andrew Liu (@hypercubestart): #82457 수정, markdown 열기, 하지만 소스 탭이 초점 없음 PR #85506
  • Andrii Dieiev (@IllusionMH): TS와 일치하도록 템플릿 리터럴 지원 개선 PR #80234
  • Jason Ginchereau (@jasongin): 자동화 라이브러리의 사소한 패키징 문제 수정 PR #83942
  • Jean Pierre (@jeanp413)
    • 이미지 리소스 URI를 두 번 인코딩하지 않음 PR #85355
    • Web: 탭을 드래그하기 시작하면 스크롤 막대가 표시되는 문제 수정 PR #83959
    • 이름에 '#'가 포함된 이미지가 렌더링되지 않는 문제 수정 PR #84334
    • 스니펫 제공자에서 삽입 및 바꾸기 채택 PR #84206
    • 디버그 콘솔에서 링크된 텍스트를 드래그하여 선택할 수 없는 문제 수정 PR #83956
    • Web Firefox: 파일을 자체에 드롭하면 페이지가 이동하는 문제 수정 PR #83962
    • compressedNavigationController가 시작 후 오래된 상태로 끝나는 문제 수정 PR #86574
  • Huáng Jùnliàng (@JLHwung): babel.config.json을 JSON 유효성 검사 스키마 맵에 추가 PR #83758
  • Joan Rieu (@joanrieu): problemMatcher.fileLocation="autodetect" 구성 옵션 문서화 PR #83803
  • John Combs (@jscombs91): force-device-scale-factor를 명령줄 인수에 추가 PR #84651
  • Robert Jin (@jzyrobert)
    • 개발용 Windows 프로토콜 핸들러에 appRoot 추가 PR #85289
    • Implementation의 철자 수정 (Implemenation에서) PR #85192
    • #85938 수정: 중복 선택 방지 PR #86286
  • @MartinBrathen: 첫 번째 클릭 시 확대/축소 수정 PR #83826
  • @mltony: 접근성 모드에서 ctrl+right가 단어 시작으로 이동하도록 변경 PR #83450
  • Nilesh Kevlani (@njkevlani): 검색 결과에서 다중 커서 추가 명령 및 키 바인딩 PR #82510
  • okmttdhr (@okmttdhr)
    • 스니펫 선택에 대한 빌더 메서드 추가 PR #84048
    • 내부 함수에 대한 JS/TS 참조 코드 렌즈 표시 PR #84689
  • @OneQuid: 파일 이름에 '%'가 포함된 이미지 열기 수정 PR #84667
  • Osk (@oskosk): installMissingDependencies에 대한 명령 식별자 오타 수정 PR #84056
  • Peter Elmers (@pelmers): QuickPick에 sortByLabel 옵션을 추가하여 결과 재정렬 여부 제어 PR #77297
  • Pieter Vanderpol (@petevdp)
    • #84678 브레드크럼 및 개요 설정에 대한 언어별 재정의 추가 PR #85081
    • #82105 터미널 이름 변경 명령 추가 PR #84429
  • Samuel Bronson (@SamB): jsconfig.json에도 후행 쉼표 허용 PR #85479
  • Shizeng Zhou (@shizengzhou): #84111 수정 PR #84610
  • @smilegodly: clearSearchResults()에 focusSearch() 추가 및 중복 함수 제거 PR #83617
  • Konstantin Solomatov (@solomatov)
    • extHostTerminalService.ts 정리 PR #84404
    • 매달린 의사 터미널 버그 수정 PR #84181
  • 空雲 (@SoraKumo001): 로컬 및 원격 포트 구성 가능 PR #84958
  • Sebastian Pahnke (@spahnke): monaco-editor: SimpleEditorModelResolverService에서 리소스로 모델 찾기 PR #85129
  • 酷酷的哀殿 (@sunbohong): utf-8 인코딩 추측 지원 PR #84504
  • Tobias Fenster (@tfenster): 마커 유형별 필터링 구현 PR #83797
  • Valentin Hăloiu (@vially): git clone 명령에 부모 경로 추가 PR #85459
  • Wojciech Buczek (@Wowol): git.ignoredRepositories에 대한 상대 경로 지원 추가 PR #83466
  • ZHAO Jinxiang (@xiaoxiangmoe): 알려진 JavaScript 파일 확장자에 .cjs 추가 PR #85460

language-server-protocol 기여

  • Montana Rowe (@calcnerd256):

    • "then"의 오용 수정, "than"이 적절한 경우. PR #866
    • 사양의 표준 복사본에 대한 잘못된 링크 수정. PR #869
  • Bradley Walters (@bmwalters): 문서 기호에 대한 잘못된 클라이언트 기능 인터페이스 수정 PR #862

vscode-css-languageservice에 대한 기여

  • Piotr Błażejewicz (Peter Blazejewicz) (@peterblazejewicz): 선형 그라데이션 설명 수정. PR #198
  • @wongjn
    • SCSS 미디어 쿼리 보간 'and' 후 수정 PR #184
    • SCSS 모듈 PR #183

debug-adapter-protocol에 기여

  • Ben Clayton (@ben-clayton): sdks.md 업데이트 PR #82

vscode-chrome-debug-core 기여

  • Elmi Ahmadov (@ahmadov): 속성에 새 값을 설정할 때 참조 오류 문제 수정 PR #546

vscode-vsce 기여

  • Alessandro Fragnani (@alefragnani): 옵션을 통해 파일 무시 PR #294
  • James Inkster (@Grommers00): #400 수정, 확장 프로그램 게시 취소 강제 허용 PR #405
  • Chris S. (@LaChRiZ): 패키지 경로가 디렉토리인 경우, vsix를 작성하기 위해 기본 파일 이름을 사용 PR #248
  • Nate Drake (@ndrake): .vsce에 권한을 0600으로 설정; #230 수정 PR #295

localization 기여

Microsoft Localization Community Platform (MLCP)를 사용하는 800명 이상의 클라우드 + AI 현지화 커뮤니티 회원이 있으며, Visual Studio Code에 약 100명의 활성 기여자가 있습니다. 새로운 번역 제공, 번역 투표 또는 프로세스 개선 제안 등 기여해주신 모든 분들께 감사드립니다.

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

  • 보스니아어 (라틴어, 보스니아 헤르체고비나): Sead Mulahasanović, Ismar Bašanović, Adnan Rizvan.
  • 덴마크어: Lasse Stilvang.
  • 네덜란드어: Lemuel Gomez, Gideon van de Laar.
  • 영어 (영국): Martin Littlecott, Alonso Calderon, Daniel Imms, Kamalsinh Solanki.
  • 핀란드어: Tuula P.
  • 프랑스어: Antoine Griffard, Thierry DEMAN-BARCELÒ, Edouard Choinière, Joel Monniot, Rodolphe NOEL, Alain BUFERNE, Xavier Laffargue, DJ Dakta.
  • 독일어: Pascal Wiesendanger, Jakob von der Haar, jan-nitsche, Michael Richter.
  • 그리스어: Valantis Kamayiannis, Θοδωρής Τσιρπάνης.
  • 히브리어: Ariel Bachar.
  • 힌디어: Kiren Paul, Niraj Kumar, Preeti Madhwal, Jaadu Jinn, Mahtab Alam.
  • 헝가리어: József Cserkó, Kiss Attila Csaba, Krisztián Papp.
  • 중국어 간체: Yizhi Gu, Tingting Yi, Justin Liu, Charles Dong, Peng Zeng, Tony Xia, 斌 项, Yixing Zheng, paul cheung, 普鲁文, Sheng Jiang, 钟越, Joel Yang, 一斤瓜子, Zhiqiang Li, Yiting hu, Alexander ZHANG, 张锐, Libing Yang, ZHENGCHENG CHEN, 光宇 朴, 石岩 詹, 舜杰 杨, WJ Wang, Siam Chen.
  • 중국어 번체: Winnie Lin, 船長, Alan Tsai, TingWen Su.
  • 인도네시아어: Eriawan Kusumawardhono, Arif Fahmi, Laurensius Dede Suhardiman, Christian Elbrianno.
  • 이탈리아어: Alessandro Alpi, Luigi Bruno.
  • 일본어: Takayuki Fuwa, 貴康 内田, Kyohei Uchida, Koichi Makino, TENMYO Masakazu, Aya Tokura.
  • 한국어: Hongju.
  • 라트비아어: Andris Vilde.
  • 노르웨이어: Frode Aarebrot, Anders Stensaas, Thomas Ødegård, Thomas Isaksen.
  • 폴란드어: Makabeus Orban, Wojciech Maj, Kacper Łakomski, Oskar Janczak, Szymon Seliga, Mateusz Redynk, Franx Bar.
  • 포르투갈어 (브라질): Marcelo Fernandes, Albert Tanure, Arthur Lima, Nylsinho Santos, Pudda, Matheus Vitti Santos, Rodrigo Crespi, Roberto Fonseca, Felipe Nascimento.
  • 포르투갈어 (포르투갈): Francisco Osorio, Luís Chaves, Ricardo Sousa Vieira, João Fernandes.
  • 루마니아어: LaServici, Dan Ichim.
  • 러시아어: Vadim Svitkin.
  • 세르비아어 키릴 문자: Dusan Milojkovic.
  • 스페인어: José María Aguilar, Gustavo Gabriel Gonzalez.
  • 타밀어: MUTHU VIJAY, Sankar Raj, Kadhireshan S, Pandidurai R, Madhu Chakravarthy, Madhu Maha.
  • 터키어: Mehmet Yönügül, mehmetcan Gün, Misir Jafarov, Fırat Eşki, Gökberk Nur, Safa Selim.
  • 우크라이나어: Arthur Murauskas, Oleksandr Krasnokutskyi.
  • 베트남어: Dat Nguyen, Vương, Dao Ngo, Van-Tien Hoang, ng-hai.
© . This site is unofficial and not affiliated with Microsoft.