2019년 1월 (버전 1.31)
업데이트 1.31.1: 이번 업데이트는 이슈들을 해결했습니다.
다운로드: Windows: x64 | Mac: Intel | Linux 64비트: deb rpm tarball | 32비트: deb rpm tarball
Visual Studio Code 2019년 1월 릴리스에 오신 것을 환영합니다. 이번 버전에는 여러분이 좋아하실 만한 몇 가지 중요한 업데이트가 있습니다. 주요 내용은 다음과 같습니다.
- 확장 프로그램 설치 시 다시 로드 불필요 - 새 확장 프로그램을 설치할 때 중단이 없습니다.
- 트리 UI 개선 - 탐색기 탐색 및 필터링 개선, 가로 스크롤.
- 메인 메뉴 업데이트 - 재설계된 이동(Go) 액션 메뉴, 편집(Edit) 메뉴의 잘라내기(Cut) 명령.
- 여러 줄의 문제(Problems) 출력 - 문제 패널에서 전체 여러 줄의 이슈 세부 정보를 확인할 수 있습니다.
- 모든 참조(Find All References) 기록 - 이전 참조 검색을 빠르게 다시 실행합니다.
- HTML, CSS 및 JSON에 대한 의미론적 선택 - 언어 의미론에 따라 선택을 확장/축소합니다.
- 통합 터미널 리플로우 지원 - 패널 너비가 변경되면 터미널 텍스트가 자동으로 리플로우됩니다.
- 명령 기반 사용자 입력 변수 - 작업 및 디버그 구성에 대한 사용자 지정 사용자 입력.
- 확장 프로그램 API 문서 업데이트 - 확장 프로그램 가이드와 함께 완전히 새로 작성되었습니다.
이 릴리스 노트를 온라인으로 읽으려면 code.visualstudio.com의 업데이트로 이동하십시오.
Cloud Developer Advocate Brian Clark가 제공하는 1.31 릴리스 하이라이트 동영상도 확인하실 수 있습니다.
릴리스 노트는 VS Code의 주요 영역과 관련된 다음 섹션에 배열됩니다. 몇 가지 추가 업데이트입니다.
- 워크벤치 - Zen 모드에서 줄 번호가 숨겨지고, 새로운 스크린캐스트 모드에서 키 입력이 표시됩니다.
- 편집기 - 스마트 선택 개선, 참조 CodeLens 위치 조정.
- 통합 터미널 - Windows에서 ConPTY 지원, 찾기 기능 개선.
- 확장 프로그램 개발 - 확장 프로그램 변경 이벤트, 브라우저에서 리소스 열기 액션.
Insider: 가능한 한 빨리 새로운 기능을 보려면? 야간 빌드인 Insider를 다운로드하고 최신 업데이트를 즉시 사용해 볼 수 있습니다. 최신 Visual Studio Code 뉴스, 업데이트 및 콘텐츠를 보려면 Twitter @code를 팔로우하세요!
확장
설치 시 다시 로드 불필요
VS Code를 다시 로드(다시 시작)하지 않고 확장 프로그램을 설치할 수 있는 기능은 가장 많은 투표를 받은 기능 요청 중 하나이며, 이번 릴리스에서 제공됩니다. 이제 확장 프로그램을 설치하거나 활성화할 때 VS Code를 다시 로드할 필요가 없습니다.
아래 예시에서 사용자는 .vue 파일을 연 후 **Vetur** 확장 프로그램을 설치하라는 권장 사항을 따릅니다. Vetur 확장 프로그램에서 제공하는 언어 기능(구문 강조, 진단 오류 등)이 권장 확장 프로그램을 설치한 직후부터 사용 가능하다는 점에 유의하십시오.

활성화되지 않은 확장 프로그램을 제거하거나 비활성화할 때도 다시 로드가 필요하지 않습니다.
참고: 외부 기여(다른 확장 프로그램의 확장 포인트에 기여)로 인해 다시 로드가 필요한 특정 확장 프로그램이 있습니다. 이는 외부 기여 포인트 소유자가 extensions.onDidChange 이벤트를 수신하여 채택해야 합니다.
워크벤치
새 트리 위젯
위젯 게임을 한 단계 발전시켰습니다. 성능 문제를 해결하고 여러 워크벤치 영역에서 더 많은 기능을 제공할 수 있도록 새로운 트리 위젯을 만들었습니다. 새 트리 위젯은 고성능 목록 위젯을 통한 구성으로 만들어졌습니다. 엔지니어링 작업 및 성능 개선에 대한 별도의 블로그 게시물을 작성할 예정입니다. 지금은 기능에 집중하겠습니다.
참고: 새 트리는 파일 탐색기, 모든 디버그 트리, 검색 및 피크 참조(Peek References)에 채택되었습니다. 아래 설명된 기능은 명시적으로 비활성화되지 않는 한 대부분의 UI 영역에 적용됩니다.
개선된 키보드 탐색
이제 트리에는 simple, highlight, filter의 세 가지 다른 유형의 키보드 탐색이 있습니다. highlight 및 filter 모두에서 트리에 입력하면 트리 상단에 위젯(컨트롤)이 표시되어 이제 트리를 탐색 중임을 나타냅니다.

이 위젯을 사용하여 highlight와 filter 모드 간에 전환할 수도 있습니다. 모드 전환을 위한 키보드 단축키를 원하시면 list.toggleFilterOnType 명령을 실행하도록 키 바인딩을 구성할 수 있습니다. **워크벤치 > 목록: 키보드 탐색** (workbench.list.keyboardNavigation) 설정은 simple 모드를 포함하여 기본 모드를 설정하며, 이 모드에서는 트리 요소의 처음 몇 글자를 입력하면 해당 요소에 초점이 맞춰집니다.
목록/트리 작업에 대한 단일 문자 키 바인딩을 가진 사용자는 listAutomaticKeyboardNavigation 컨텍스트 키를 사용하여 이 기능을 계속 사용할 수 있습니다. 예를 들어, VIM 확장 프로그램은 이 컨텍스트 키를 false로 설정하여 자동 키보드 탐색을 비활성화하고 list.toggleKeyboardNavigation 명령에 키 바인딩 /를 추가하여 사용자가 /를 입력하고 트리를 탐색할 수 있도록 합니다. 자세한 내용은 VSCodeVIM 풀 요청에서 확인할 수 있습니다.
테마 작성자는 다음 새 테마 키를 사용하여 위젯의 색상을 사용자 지정할 수 있습니다.
listFilterWidget.backgroundlistFilterWidget.outlinelistFilterWidget.noMatchesOutline
참고: 이러한 키보드 탐색 모드는 현재 해결된 트리 노드에서만 작동합니다. 예를 들어, 파일 탐색기에서 폴더가 한 번도 확장되지 않은 경우 트리는 해당 하위 폴더를 찾지 않습니다. 이 경험을 개선하기 위해 몇 가지 옵션을 고려하고 있습니다.
계층적 전체 선택
트리에서 Ctrl+A (macOS에서는 Cmd+A)를 누르면 이제 트리의 선택이 계층적으로 확장됩니다.

사용자 지정 가능한 들여쓰기
이제 **워크벤치 > 트리: 들여쓰기** (workbench.tree.indent) 설정을 사용하여 워크벤치 전체의 모든 트리의 노드 들여쓰기를 사용자 지정할 수 있습니다.
모두 확장/축소
트리 노드를 확장/축소하는 동안 Alt 키를 누르면 이제 재귀적으로 작동합니다. 재귀적 확장은 이전에 트리에서 표시된 노드에 대해서만 작동합니다. 예를 들어, 파일 탐색기는 사용자가 이전에 한 번도 확장하지 않은 폴더를 자동으로 확장하지 않습니다.
가로 스크롤
워크벤치 > 트리: 가로 스크롤 (workbench.tree.horizontalScrolling) 설정은 이제 탐색기, 검색, SCM, 디버그 등 더 많은 트리와 목록에서 가로 스크롤을 활성화합니다.
문제 패널
여러 줄 메시지
문제 패널은 이제 여러 줄 진단 메시지를 별도의 줄에 표시합니다. 아래 예시는 TypeScript의 여러 줄 오류 메시지가 이제 어떻게 표시되는지 보여줍니다.

축소/확장 버튼을 사용하거나 **문제: 메시지를 한 줄로 표시** 및 **문제: 메시지를 여러 줄로 표시** 명령을 사용하여 전체 메시지를 표시하거나 숨기도록 전환할 수도 있습니다.
키보드 단축키를 사용하여 코드 액션 트리거
이제 문제 패널에서 빠른 수정(Quick Fix) 명령과 동일한 기본 키보드 단축키 ⌘. (Windows, Linux Ctrl+.)를 사용하여 코드 액션을 트리거할 수 있습니다.
이동(Go) 메뉴 개선
더 쉽게 찾을 수 있도록 **이동(Go)** 메뉴에 탐색 액션을 더 많이 추가했습니다.

탐색기 컨텍스트 메뉴의 잘라내기 명령
인기 요청에 따라 탐색기 컨텍스트 메뉴에 잘라내기 명령을 추가했습니다.

빠른 스크롤
Alt 키를 누르면 편집기 및 탐색기에서 빠른 스크롤이 활성화됩니다. 기본적으로 빠른 스크롤은 5배 속도 승수를 사용하지만, **편집기: 빠른 스크롤 감도** (editor.fastScrollSensitivity) 설정을 사용하여 승수를 제어할 수 있습니다.
Zen 모드에서 줄 번호 숨기기
Zen 모드를 켜면 편집기 줄 번호도 숨겨집니다. 이 동작은 zenMode.hideLineNumbers 설정을 통해 제어할 수 있습니다.
사용자 지정 메뉴가 있는 Linux에서 키보드 탐색 추가
사용자 지정 메뉴는 이제 Page Up/Down 및 Home/End 키를 사용하여 메뉴의 시작 또는 끝으로 빠르게 이동하는 기능을 지원합니다.
Windows/Linux에서 애플리케이션 아이콘을 두 번 클릭하여 닫기
기술적 절충으로 인해 기본적으로 Windows 및 Linux의 사용자 지정 제목 표시줄은 애플리케이션 아이콘을 두 번 클릭하여 창을 닫는 기능을 제거합니다. 설정을 활성화하면 이 기능을 복원할 수 있습니다. window.doubleClickIconToClose 하지만 이 위치에서 창을 드래그하거나 Windows에서 시스템 컨텍스트 메뉴를 가져올 수 없다는 점에 유의하십시오.
편집기 탭 닫기 순서
새로운 설정 workbench.editor.focusRecentEditorAfterClose를 통해 편집기 탭이 닫히는 순서를 변경할 수 있습니다. 기본적으로 탭은 가장 최근 사용(MRU) 순서로 닫힙니다. 이 설정을 변경하면 오른쪽에서 왼쪽으로 탭을 닫을 수 있습니다.
새로운 제목 변수
window.title 설정 내에서 사용할 수 있는 세 가지 새로운 변수가 있습니다.
${activeFolderShort}: 파일이 포함된 폴더의 이름입니다.${activeFolderMedium}: 파일이 포함된 폴더의 경로로, 워크스페이스 폴더에 상대적입니다.${activeFolderLong}: 파일이 포함된 폴더의 전체 경로입니다.
출력 패널
이제 출력(Output) 패널의 스마트 스크롤 동작이 더 효율적입니다. 출력 패널의 아무 곳이나 클릭하면 스크롤이 잠기고 마지막 줄을 클릭하면 잠금이 해제됩니다.
스크린캐스트 모드
VS Code에 커서 위치와 키 입력을 강조하는 새로운 **스크린캐스트 모드**가 있습니다. 스크린캐스트 모드(개발자: 스크린캐스트 모드 전환)는 시연 목적으로 유용할 수 있습니다.

편집기
스마트 선택
선택(Selections) 메뉴의 **선택 확장(Expand Selection)** 및 **선택 축소(Shrink Selection)** 구현을 개선했습니다. 언어 서버가 의미론적 지식을 기반으로 선택 단계를 지정할 수 있도록 API를 추가하는 중입니다. 또한 기본 구현도 개선했습니다.

스마트 선택이 개선됨에 따라 더 많은 기능이 추가될 예정입니다. 현재 작업 중인 내용을 확인하려면 smart-select-레이블을 사용하십시오.
참조 기록
이제 참조(References) 보기에는 **참조: 기록 보기** 명령이 있습니다. 이전 검색 기록을 퀵픽(Quick Pick)으로 표시하여 이전 검색을 빠르게 다시 실행할 수 있습니다.

참조 CodeLens
참조 CodeLens를 선택하면 피크 편집기(peek editor)가 열립니다. 이제 references.preferredLocation 설정을 사용하여 이 위치를 제어할 수 있습니다. 옵션은 peek와 view이며, 후자는 새 보기에서 참조를 표시합니다.
스니펫 설명
긴 설명이 있는 스니펫을 작성할 때 과거에는 긴 단일 문자열로 작성해야 했습니다. body의 경우처럼 배열을 사용하는 데 지원되지 않았습니다. 이제 이 부분이 변경되어 문자열 배열을 사용하여 긴 설명을 작성할 수 있습니다.
{
"prefix": "happy",
"body": "#Happy Coding!",
"description": ["First Line", "Second Line", "Third Line"]
}
레거시 검색 모드 제거
20개 릴리스 전에 VS Code에서 검색을 위해 ripgrep을 사용하기 시작했습니다. 이전 Node.js 기반 검색 구현은 여전히 search.useLegacySearch 설정을 통해 사용할 수 있었습니다. 하지만 마리 콩도(Marie Kondo)가 말했듯이 더 이상 즐거움을 주지 않는 것들은 정리해야 합니다. 백레퍼런스나 전방 탐색과 같은 정규식 기능을 사용했다면 search.usePCRE2 설정을 켜도록 하십시오.
JSON으로 설정 편집 시 간단한 텍스트 편집기 사용
유사한 맥락에서, 이제 여러 릴리스 동안 설정 UI가 있었으므로 JSON 설정 편집 환경을 단순화하려고 합니다. settings.json 파일을 열거나 설정 UI에서 {} 버튼을 클릭하거나 **환경 설정: 사용자 설정 열기(JSON)** 명령을 호출하여 JSON으로 설정을 편집하는 경우, 이전의 분할 JSON 편집기 대신 간단한 JSON 편집기가 제공됩니다. **환경 설정: 기본 설정 열기(JSON)** 명령을 사용하여 기본 설정 목록은 여전히 볼 수 있습니다.
왼쪽에 기본 설정이 있는 분할 JSON 편집기가 정말 그리우시다면 workbench.settings.useSplitJSON 설정을 활성화하여 복원할 수 있습니다. 선호하는 경우 언제든지 JSON으로 설정을 편집할 수 있다는 점에 유의하십시오.
확장 프로그램에 대한 네트워크 프록시 지원
HTTP: 프록시 지원 (http.proxySupport) 설정은 이제 기본적으로 모든 확장 프로그램에 대해 네트워크 프록시 지원을 활성화합니다.

언어
TypeScript 3.3
이제 TypeScript 3.3.1을 제공합니다. 이번 TypeScript 업데이트는 몇 가지 중요한 버그 수정과 개선 사항을 포함하고 있습니다.
markdown.previewFrontMatter 설정 제거
markdown.previewFrontMatter 설정이 제거되었습니다. Markdown 미리 보기는 이제 YAML 프론트매터를 항상 숨깁니다 (이것은 markdown.previewFrontMatter의 기본 설정이었습니다).
Markdown yaml Preamble 및 GitHub Markdown Preview와 같은 Markdown 확장 프로그램은 미리 보기에서 프론트매터를 테이블로 렌더링합니다.
의미론적 선택
이제 HTML, CSS/LESS/SCSS 및 JSON에 대해 의미론적 선택이 가능합니다.

통합 터미널
리플로우 지원
이제 터미널을 가로로 크기 조정하면 줄이 래핑되고 언래핑됩니다.

Windows에서 ConPTY 지원
Windows ConPTY API를 통해 터미널 프로세스를 관리하는 기능이 이제 Windows Insiders 빠른 링(빌드 번호 18309 이상)에서 선택적 옵션으로 제공됩니다.
{
"terminal.integrated.windowsEnableConpty": true
}
이는 Windows 콘솔 팀에서 제공하는 ConPTY 시스템을 터미널의 백엔드로 사용합니다. 이를 활성화하면 Windows 터미널의 많은 문제, 특히 색상 지원, 대화형 애플리케이션 및 VT 시퀀스를 네이티브로 지원하는 셸과 관련된 문제가 해결될 것입니다.
다음은 WSL 터미널에서 256색 ANSI 지원의 이전 및 이후 모습입니다.


링크에 사용되는 현재 작업 디렉토리
Linux 및 macOS에서는 터미널이 터미널의 초기 디렉토리가 아닌 현재 작업 디렉토리를 기준으로 링크를 해석합니다.

터미널 찾기 기능 개선
터미널에서 찾기 기능은 이제 증분 "입력 중 찾기" 검색을 지원하며, 한 줄에 여러 용어를 찾을 수 있는 기능도 지원합니다.
commandsToSkipShell 설정 개선
이전에는 terminal.integrated.commandsToSkipShell 설정이 터미널에서 평가를 건너뛰고 대신 VS Code에서 처리될 모든 명령 목록이었습니다. 이는 설정 파일에 100개 이상의 명령 목록을 포함해야 하므로 불편했습니다. 이제 추가 및 삭제 목록으로 변경되어 기본 목록에 대한 변경 사항만 포함됩니다.
{
"terminal.integrated.commandsToSkipShell": [
// Make ctrl+n open a new file when the terminal is focused
"workbench.action.files.newUntitledFile",
// Send ctrl+e to the terminal
"-workbench.action.quickOpen"
]
}
새 버퍼 구현 활성화
v1.29에서 소개된 TypedArray/ArrayBuffer 기반 터미널 버퍼 가 이제 활성화되었으며 이전 구현은 제거되었습니다. 이는 터미널 처리량을 크게 향상시키고 메모리 사용량을 크게 줄여야 합니다.
디버그 및 작업
사용자 지정 명령 사용자 입력 변수
이전 마일스톤에 도입된 입력 변수는 작업 또는 디버그 구성에서 사용자 입력을 요청하는 강력한 메커니즘입니다. 처음에는 promptString 및 pickString 입력 변수를 사용할 수 있었습니다.
이번 마일스톤에서는 입력 변수가 보간될 때 임의의 명령을 실행하는 새로운 유형의 입력 변수인 command를 도입합니다. 명령은 확장 프로그램에서 제공될 수 있으므로 사용자 입력 변수를 새로운 구현으로 확장하는 것이 이제 가능합니다.
다음 예시는 특정 폴더에서 찾은 모든 테스트 사례 목록에서 사용자가 테스트 사례를 선택할 수 있도록 하는 디버그 구성에서 command 유형의 사용자 입력 변수를 사용하는 방법을 보여줍니다. 일부 확장 프로그램이 구성 가능한 위치에서 모든 테스트 사례를 찾고 그중 하나를 선택하는 피커 UI를 표시하는 extension.mochaSupport.testPicker 명령을 제공한다고 가정합니다.
{
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Test",
"program": "${workspaceFolder}/${input:pickTest}"
}
],
"inputs": [
{
"id": "pickTest",
"type": "command",
"command": "extension.mochaSupport.testPicker",
"args": {
"testFolder": "${workspaceFolder}/tests"
}
}
]
}
작업 출력에 대한 분할 터미널 지원
이제 작업을 새 터미널을 만드는 대신 분할 터미널 패널에 출력을 표시하도록 구성할 수 있습니다. 작업 구성은 presentation 섹션의 group 속성을 사용하여 작업 출력이 표시될 위치를 정의할 수 있습니다.
아래 두 작업을 모두 실행하면 분할 터미널에 표시되므로 동시에 두 작업을 볼 수 있습니다.
{
"version": "2.0.0",
"tasks": [
{
"label": "Task One",
"type": "shell",
"command": "echo One && sleep 5000",
"problemMatcher": [],
"presentation": {
"group": "groupA"
}
},
{
"label": "Task Two",
"type": "shell",
"command": "echo Two && sleep 5000",
"problemMatcher": [],
"presentation": {
"group": "groupA"
}
}
]
}

미리 보기 기능
미리보기 기능은 릴리스 준비가 되지 않았지만 사용할 만큼 기능적입니다. 개발 중인 동안 초기 피드백을 환영합니다.
워크벤치용 그리드 레이아웃
워크벤치 레이아웃은 편집기 자체에서 사용되는 그리드 레이아웃을 사용하도록 재작업되고 있습니다. 여기서 수행되는 작업은 장기적으로 워크벤치 레이아웃 유지 관리의 엔지니어링 작업을 단순화할 뿐만 아니라 새로운 환경을 지원하는 데 도움이 될 것입니다.
이번 마일스톤에서는 새로운 그리드 레이아웃으로 더 쉽게 달성할 수 있는 경험인 편집기 영역 전환을 제공합니다. 실험적 그리드 레이아웃 ("workbench.useExperimentalGridLayout": true)을 활성화하면 코드 편집기를 숨기는 새로운 명령 편집기 영역 전환이 있습니다. 이를 통해 아래 그림과 같이 전체 편집기 영역을 차지하는 VS Code 터미널 패널을 만들 수 있습니다.

터미널에서 code file.txt를 사용하여 파일을 열면 예상대로 편집기가 팝업됩니다. 이 기능은 아직 작업 중이며 알려진 문제가 있지만, 확인해보고 이슈를 보고하도록 권장합니다. 이 작업과 관련된 이슈는 이 쿼리를 통해 최신 정보를 얻을 수 있습니다.
HTML 및 CSS 사용자 지정 데이터 지원
이 기능은 미리 보기 상태이므로 설정, 기여 포인트 및 데이터 형식은 변경될 수 있습니다.

오늘날 프론트엔드 개발자는 종종 HTML/CSS의 슈퍼셋으로 코딩합니다.
- Web Components를 사용하면
<my-button type="alert"></my-button>과 같은 사용자 지정 HTML 요소를 사용할 수 있습니다. - PostCSS는
size와 같은 사용자 지정 CSS 속성 및 아직 표준화되지 않은 CSS 기능(예:size및:any-link)을 허용합니다. - 다양한 프레임워크는 소스 HTML/CSS에서 더 큰 유연성을 제공합니다.
이번 반복에서는 1.30에 도입된 HTML 사용자 지정 데이터 지원을 개선하고 CSS 사용자 지정 데이터 지원을 추가했습니다.
- 사용자 지정 데이터 로드에는
html.experimental.customData또는css.experimental.customData를 사용하십시오. (html.experimental.custom.tags및html.experimental.custom.attributes는 제거되었습니다.) - 또는
contributes.html.experimental.customData또는contributes.css.experimental.customData를 사용하여 JSON을 확장 프로그램으로 번들링하십시오. - 마지막으로, vscode-html-languageservice 또는 vscode-css-languageservice를 사용하는 언어 서버를 작성하는 경우 사용자 지정 데이터로 언어 서비스를 생성할 수 있습니다.
사용자 지정 데이터는 VS Code의 HTML/CSS 이해를 향상시킵니다. 예를 들어, 이러한 HTML/CSS JSON 기여를 통해 VS Code는 사용자 지정 HTML 태그/속성 및 CSS 속성/pseudoClass에 대한 완성 및 호버를 제공할 수 있습니다.
{
"version": 1,
"tags": [
{
"name": "my-button",
"description": "My button",
"attributes": [
{
"name": "type",
"description": "My button type",
"values": [{ "name": "alert" }]
}
]
}
]
}
{
"version": 1,
"properties": [
{
"name": "my-size",
"description": "Compiles down to `width` and `height`. See details at https://github.com/postcss/postcss-size."
}
],
"pseudoClasses": [
{
"name": ":my-link",
"description": ":any-link pseudo class. See details at https://preset-env.cssdb.org/features#any-link-pseudo-class."
}
]
}
위 샘플은 octref/simple-customdata에서 사용할 수 있으며, 더 완전한 기능을 갖춘 샘플은 octref/svg-data에서 사용할 수 있습니다.
이 가이드에서는 데이터 형식과 설정을 통해 확장 프로그램 기여 포인트를 사용하여 데이터를 사용하는 방법을 설명합니다.
확장 프로그램 작성
확장 프로그램 변경 이벤트
extensions.onDidChange라는 새 이벤트가 추가되어 extensions.all 배열이 변경될 때 발생합니다. 이는 확장 프로그램이 설치, 제거, 활성화 또는 비활성화될 때 발생할 수 있습니다. 확장 프로그램 설치 시 다시 로드 불필요 섹션을 참조하십시오.
/**
* An event which fires when `extensions.all` changes. This can happen when extensions are
* installed, uninstalled, enabled or disabled.
*/
export const onDidChange: Event<void>;
참고: 새 기여 포인트를 도입하는 확장 프로그램 작성자는 이 이벤트를 수신하고 워크벤치의 상태를 그에 따라 업데이트해야 합니다.
브라우저에서 리소스 열기
여러 확장 프로그램에서 opn 또는 open과 같은 Node 모듈을 사용하여 브라우저에서 URL을 여는 것을 관찰했습니다. 이 기능에 대한 요구 사항을 고려하여 새로운 API vscode.env.openExternal을 추가했습니다. URL을 예상하며 웹사이트 링크, 메일 링크 또는 애플리케이션 URL 핸들러를 여는 데 사용할 수 있습니다. 또한 PDF 파일과 같은 기본 앱에서 열기 위해 파일 URL도 허용됩니다.
// open default browser
await vscode.env.openExternal(
vscode.Uri.parse('https://github.com/microsoft/vscode/issues/66741')
);
참고: 현재 opn 또는 open 모듈을 사용하는 확장 프로그램 작성자는 이 새 API로 전환해야 합니다.
글로벌 저장소 경로
확장 프로그램에 이제 로컬 디렉토리에 대한 쓰기/읽기 액세스 권한이 있는 전역 저장소 경로 ExtensionContext.globalStoragePath가 제공됩니다. 모든 워크스페이스에서 액세스할 수 있는 대용량 파일을 저장해야 하는 경우 좋은 옵션입니다.
/**
* An absolute file path in which the extension can store global state.
* The directory might not exist on disk and creation is
* up to the extension. However, the parent directory is guaranteed to be existent.
*
* Use [`globalState`](#_ExtensionContext.globalState) to store key value data.
*/
globalStoragePath: string;
VS Code는 확장 프로그램이 제거될 때 이 경로를 정리하는 것을 관리합니다.
참고: 현재 워크스페이스 간에 상태를 저장하기 위해 사용자 지정 파일 시스템 위치를 사용하는 확장 프로그램 작성자는 이 새 API로 전환해야 합니다.
CodeActionKind.intersects
CodeActionKind.intersects 메서드는 CodeActionProvider가 Code Actions를 계산해야 하는지 여부를 확인하는 데 유용합니다.
import * as vscode from 'vscode';
export class OrganizeImportsProvider implements vscode.CodeActionProvider {
public provideCodeActions(
document: vscode.TextDocument,
range: vscode.Range,
context: vscode.CodeActionContext,
token: vscode.CancellationToken
): vscode.CodeAction[] {
// Only return organize imports actions if they were explicitly requested
// We can check this using `intersects`.
if (!context.only || !vscode.CodeActionKind.SourceOrganizeImports.intersects(context.only)) {
// Organize imports actions were not requested
return [];
}
// Organize imports was requested
...
}
}
contributes.resourceLabelFormatters
확장 프로그램은 이제 워크벤치의 모든 곳에서 URI를 표시하는 방법을 지정하는 리소스 레이블 포맷터를 기여할 수 있습니다. 예를 들어, 확장 프로그램이 remotehub 스키마의 URI에 대한 포맷터를 기여하는 방법은 다음과 같습니다.
"contributes": {
"resourceLabelFormatters": [
{
"scheme": "remotehub",
"formatting": {
"label": "${path}",
"separator": "/",
"workspaceSuffix": "GitHub"
}
}
]
}
이는 remotehub 스키마를 가진 모든 URI가 URI의 path 세그먼트만 표시하여 렌더링되고 구분 기호는 /가 된다는 것을 의미합니다. remotehub URI를 가진 워크스페이스는 레이블에 GitHub 접미사가 붙습니다.
키 바인딩에 인수 추가
package.json에서 키 바인딩을 정의할 때 이제 인수를 정의할 수 있습니다. 실행 시 해당 인수가 명령에 전달됩니다.
아래 샘플에서는 {foo: 1, bar: 2}입니다.
"keybindings": {
"key": "cmd+i",
"command": "myCommand",
"args": {
"foo": 1,
"bar": 2
}
}
createTerminal 환경에 대한 완전한 제어
새 설정 TerminalOptions.strictEnv를 true로 설정하면 터미널 환경에 전혀 수정이 가해지지 않으며, 대신 확장 프로그램에서 전달된 대로 정확히 사용됩니다.
// This will create a terminal whose environment only contains the single value
// FOO=BAR.
const terminal = createTerminal({
name: 'Test terminal',
env: {
FOO: 'BAR'
},
strictEnv: true
});
Node.js 업데이트
VS Code가 실행되는 Electron 버전이 업데이트되었으며, 이에 따라 Node.js도 8.9에서 10.2.0으로 업데이트되었습니다. 모든 확장 프로그램은 이제 이 최신 버전의 Node.js에서 실행됩니다. Node.js 10의 폐기 목록은 Node v10.0.0 폐기를 참조하십시오.
Octicons 업데이트
Octicons 버전을 8.3.0으로 업데이트했으며 이제 다음 아이콘을 지원합니다.
![]()
$(arrow-both)$(bold)$(color-mode)$(eye-closed)$(fold-down)$(fold-up)$(grabber)$(italic)$(kebab-horizontal)$(kebab-vertical)$(note)$(organization-filled)$(person-filled)$(project)$(request-changes)$(screen-full)$(screen-normal)$(smiley)$(tasklist)$(text-size)$(unverified)$(verified)
지원하는 아이콘 전체 목록은 문서에서 확인할 수 있습니다. 변경 사항에 대한 전체 자세한 목록은 Octicon 변경 로그를 참조하십시오.
제안된 확장 API
각 마일스톤에는 새로운 제안 API가 포함되며 확장 작성자는 이를 시험해 볼 수 있습니다. 언제나처럼 여러분의 피드백을 기다립니다. 제안된 API를 시험해 보려면 다음 단계를 따르세요.
- 제안된 API는 자주 변경되므로 Insiders를 사용해야 합니다.
- 확장의
package.json파일에 이 줄이 있어야 합니다:"enableProposedApi": true. - 최신 버전의 vscode.proposed.d.ts 파일을 프로젝트로 복사하세요.
제안된 API를 사용하는 확장은 게시할 수 없습니다. 다음 릴리스에서 호환되지 않는 변경이 발생할 수 있으며 기존 확장에 문제가 발생하는 것을 원하지 않습니다.
SignatureHelpContext.activeSignatureHelp
제안된 SignatureHelpContext.activeSignatureHelp 필드는 이전에 활성화된 서명을 추적합니다.
import * as vscode from 'vscode';
class MySignatureHelpProvider implements vscode.SignatureHelpProvider {
provideSignatureHelp(
document: vscode.TextDocument,
position: vscode.Position,
token: vscode.CancellationToken,
context: vscode.SignatureHelpContext
): vscode.ProviderResult<vscode.SignatureHelp> {
// The active signature help when this provider was triggered or undefined if
// no signature help was active.
console.log(context.activeSignatureHelp);
...
}
}
프로바이더는 이를 사용하여 서명 도움말 프로바이더가 다시 트리거되기 전에 선택된 오버로드를 추적할 수 있습니다.
자동 수정 및 CodeAction.isPreferred
코드 액션 API는 VS Code의 빠른 수정(편집기에서 보이는 전구)을 지원합니다. 특정 오류에 대해 여러 개의 빠른 수정이 있을 수 있지만, 종종 이러한 빠른 수정 중 하나가 문제에 대한 가장 합리적인 수정입니다. 예를 들어, 철자 오류를 수정하는 것은 새 필드를 생성하는 것보다 일반적으로 더 가능성 있는 수정입니다.

제안된 API를 사용하여 확장 프로그램은 CodeAction에 isPreferred를 설정하여 기본 문제에 대한 가장 합리적인 수정임을 나타낼 수 있습니다. 선호하는 수정은 **자동 수정** 명령(⌥⌘. (Windows, Linux Shift+Alt+.))을 사용하여 자동으로 적용할 수 있습니다.

선호하는 빠른 수정은 일반적으로
- 기본 오류를 올바르게 수정하고 (문제를 숨기지 않음).
- 오류에 대한 합리적인 수정이어야 합니다.
- 예기치 않은 광범위한 작업을 수행하지 않아야 합니다.
리팩터링 코드 액션도 선호 사항으로 표시하여 가장 합리적인 리팩터링임을 나타낼 수 있습니다. 예를 들어, 여러 **상수 추출(Extract constant)** 리팩터링이 가능할 때도 있지만, 종종 사용자는 가장 가까운 지역 변수로 추출하기만 원할 수 있습니다. 해당 리팩터링 코드 액션이 isPreferred로 표시되면 사용자는 이를 위한 단일 키 바인딩을 설정할 수 있습니다.
{
"key": "ctrl+shift+r ctrl+e",
"command": "editor.action.codeAction",
"args": {
"kind": "refactor.extract.constant",
"preferred": true
}
}
모든 소스 액션 수정 (Fix All Source Actions)
제안된 source.fixAll CodeActionKind는 파일에서 오류를 자동 수정할 수 있는 확장 프로그램을 위한 컨벤션을 설정합니다. 이 새로운 소스 액션 종류는 **정렬 가져오기(Organize imports)**와 유사하며, 수정 모든 액션에 대한 키 바인딩을 쉽게 구성하거나 저장 시 자동 수정 기능을 활성화할 수 있습니다.
// On save, run both fixAll and organizeImports source actions
"editor.codeActionsOnSave": {
"source.fixAll": true,
"source.organizeImports": true,
}
TSLint 확장 프로그램은 이미 이 제안된 소스 코드 액션 종류를 사용하여 수정 모든 기능과 저장 시 자동 수정 기능을 구현하고 있습니다.
디버그 어댑터 프로토콜
데이터 중단점에 대한 제안된 디버그 어댑터 프로토콜
데이터 중단점(일명 "감시점")에 대한 진행 중인 작업의 후속 단계로, 데이터 중단점을 위한 디버그 어댑터 프로토콜 설계에 진척을 이루었습니다. 제안된 DAP 변경 사항은 이 브랜치에 있으며 해당 TypeScript API는 데이터 중단점 제안에서 찾을 수 있습니다.
디버거 확장 프로그램에서 데이터 중단점을 지원하는 데 관심이 있다면 제안을 살펴보고 피드백을 제공해 주십시오.
실시간 테마 편집
색상 테마 확장 프로그램을 개발할 때 **확장 개발 호스트** 창에 색상 변경 사항이 실시간으로 적용되는 것을 볼 수 있습니다.

파일 아이콘 테마에도 동일하게 작동합니다.
엔지니어링
Electron 3.0 업데이트 및 Electron 4.0 탐색
이번 마일스톤에서는 Electron 3을 VS Code에 통합하는 작업을 완료했으며, 이는 안정 버전에서 이 Electron 버전을 처음으로 출시하는 것입니다. 이는 Chrome 66 및 Node.js 10.x와 함께 제공되는 주요 Electron 릴리스입니다 (현재 Chrome 61 및 Node.js 8.x를 사용하는 버전과 비교하면 큰 발전입니다).
동시에 Electron 4로 업데이트하는 작업을 시작했으며, 곧 Insiders 빌드로 배포할 수 있을 것으로 기대합니다.
더 나은 성능 정보
이번 릴리스에서는 Developer: Startup Performance 명령의 출력이 더 이상 DevTools가 아닌 편집기에 표시됩니다. 이를 통해 읽기 쉬워지고 더 빠르게 액세스할 수 있습니다. 또한 정보와 관련된 많은 문제가 수정되었습니다.
WinJS.Promise 제거 ✅
VS Code가 처음 출시되었을 때 JavaScript는 현재와 같지 않았습니다. 예를 들어, 네이티브 promise가 없었기 때문에 팀은 비동기 작업을 위해 WinJS.Promise를 사용하기로 결정했습니다. 오늘날 상황은 다릅니다. 네이티브 promise가 현실화되었고 WinJS.Promise는 더 이상 사용되지 않습니다. 작년 중반에 코드베이스에서 WinJS.Promise를 제거하는 작업을 시작했으며, 12월에 완료했습니다.
엄격한 null 검사
주요 VS Code 코드베이스에 대한 엄격한 null 검사 작업을 계속 진행했습니다. 여러분의 도움 덕분에 이번 마일스톤에서는 다수의 테스트 파일에 대해 엄격한 null 검사를 활성화하여 많은 오류를 제거할 수 있었습니다.
다음 마일스톤에서도 엄격한 null 검사 작업을 계속할 것입니다.
확장 프로그램에 대한 기여
저희 팀은 여러 VS Code 확장 프로그램을 유지 관리하거나 기여합니다. 이번 달 가장 주목할 만한 내용은 다음과 같습니다.
TSLint 지원
새로운 TSLint 확장 프로그램은 이제 source.fixAll 코드 액션을 사용하여 저장 시 자동 수정 기능을 지원합니다.
"editor.codeActionsOnSave": {
"source.fixAll": true
}
더 이상 사용되지 않는 TSLint (eg2.tslint) 확장 프로그램 사용자는 새로운 TSLint 확장 프로그램으로 마이그레이션할 것을 권장합니다.
Stylus 언어 지원
Stylus 언어 확장 프로그램은 이제 vscode-css-languageservice의 큐레이션된 데이터를 사용하여 최신 상태의 완료, 상태 경고 및 구문 설명서를 제공합니다.

GitHub 풀 요청
이 마일스톤에서는 GitHub Pull Requests 확장 프로그램 개선 작업을 계속했습니다.
다음은 몇 가지 새로운 기능입니다.
- GitHub 검토 지원. 이제 개별적으로 댓글을 추가하는 대신 검토로 댓글을 그룹화할 수 있습니다.
- 작업 공간이 GitHub 저장소인 경우 Live Share 세션에 참여할 때 확장 프로그램이 원활하게 작동합니다.
- GraphQL을 프로젝트에 점진적으로 도입하여 설명 보기에서 풀 요청에 대한 더 자세한 정보가 표시되고 확장 프로그램의 전반적인 성능이 향상되었습니다.
- 풀 요청을 병합할 때 이제 병합 커밋 만들기, Squash 및 병합 또는 Rebase 및 병합을 선택할 수 있습니다.
- 성능 개선. 풀 요청을 탐색하고, 변경 사항을 파일로 저장하고, 풀 요청을 체크아웃할 때 GitHub API 호출 및 git 작업 수를 모두 줄여 확장 프로그램 응답 속도가 특히 Windows에서 빨라졌습니다.
확장 프로그램의 전체 릴리스 노트를 vscode-pull-request-github 릴리스에서 확인할 수 있습니다.
새로운 문서
Python Jupyter Notebook
새로운 Jupyter Notebook 작업 토픽에서는 VS Code 내에서 Jupyter Notebook을 열고, 디버깅하고, 내보내는 방법을 설명합니다.
JavaScript 및 TypeScript 문서 개선
JavaScript 및 TypeScript 문서를 최신 상태로 유지하고 더 유용한 정보를 제공하도록 업데이트했습니다.
이제 JavaScript 및 TypeScript 페이지에서는 VS Code가 이들 언어에 대해 제공하는 기능에 대한 개요를 제공합니다. 이러한 기능에 대한 더 자세한 설명과 튜토리얼은 이제 목차의 Node.js / JavaScript 및 TypeScript 아래의 새 페이지로 이동했습니다.
확장 API 문서 업데이트
확장 프로그램 작성자를 위해 VS Code API 문서를 재작성하고 자체 목차로 이동했습니다.

여기에서 다음 내용을 위한 문서를 찾을 수 있습니다.
- 첫 번째 확장 프로그램으로 시작하는 방법.
- 다양한 확장 프로그램 기능에 대해 알아보세요.
- 확장 프로그램 가이드 및 고급 주제를 찾아보세요.
- 전체 API 참조.
주요 수정 사항
- 7570: VS Code가 오프라인에서 열리지 않음
- 14372: 확장 프로그램: 비활성화 상태를 창 간에 전달해야 함
- 34396: 단일 CPU VM에서 높은 CPU 사용량
- 58167: OS 재개 후 터미널 및 미니맵 복원 텍스처가 손상됨
- 59794: editor.accessibilitySupport가 'auto'로 설정되어 있을 때 터미널 화면 판독기 지원이 작동하지 않음
- 61649: 디버그에서 'undefined'의 'onError' 속성을 읽을 수 없음
- 63832: 확장 프로그램을 디버깅할 때 lsp 서버에 연결할 수 없음
- 64948: GDB C/C++ 디버거가 시작되지 않고 오류 발생
- 65697: stopOnEntry와 autoAttachChildProcesses가 node cluster에서 포크된 프로세스에서 존중되지 않음
- 66302: Ctrl + L은 기본적으로 repl 지우기로 바인딩되어야 함
- 66681: 가상 문서에 대해 "비교용 선택" 및 "선택 항목과 비교" 명령이 표시되지 않음
이번 릴리스에는 Microsoft Security Response Center CVE-2019-0728에 대한 보안 업데이트도 포함되어 있습니다.
감사합니다
마지막으로, VS Code를 더욱 발전시키는 데 도움을 준 다음 분들께 진심으로 감사드립니다.
이슈 추적에 대한 기여. 문제를 관리하는 데 도움이 되기를 원하시면 커뮤니티 이슈 추적 페이지를 참조하세요.
- Alexander (@usernamehw)
- Simon Chan (@yume-chan)
- Prabhanjan S Koushik (@skprabhanjan)
- Eric Amodio (@eamodio)
- Christopher Leidigh (@cleidigh)
vscode 기여
- Alec Chan (@aechan): 검색: 지우기 버튼 동작 개선 PR #63082
- Alexander Eyers-Taylor (@aeyerstaylor)
- Agustín Rodríguez (@agurodriguez): '이슈 보고' 및 '프로세스 탐색기' 창이 전체 화면 모드로 열리지 않도록 방지 PR #64839
- Anirudh Rayabharam (@anirudhrb): 이슈 65204 수정: 키 바인딩 아이콘이 사라짐 PR #65968
- @asaf050: 터미널 컨텍스트 메뉴에서 터미널 종료 허용 PR #66535
- Chris Patterson (@chrisrpatterson): 빌드 배지 URL 업데이트 PR #67008
- Christian Alexander (@ChristianAlexander): git add -N으로 추가된 파일의 디스플레이 처리 추가 PR #59163
- Christian Flach (@cmfcmf): 작업에 terminalGroup 추가하여 분할된 창에서 실행할 수 있도록 함 PR #65973
- Christian Oliff (@coliff): EditorConfig.org에 대한 HTTPS 링크 PR #65358
- Danny Tuppeny (@DanTup): 오타 수정: "accepeted" => "accepted" PR #64976
- @davidwu226: 유효하지 않은 JSON 수정. PR #65447
- Donald Pipowitch (@donaldpipowitch): .vscodeignore 구문 강조 추가 PR #64960
- Thai Pangsakulyanont (@dtinth): tsconfig.json을 파싱할 때 JSON.parse 대신 jsonc.parse 사용, tsconfig.json에 주석이 포함되어 있을 때 -b 플래그가 활성화되지 않는 버그 수정. PR #67535
- Thien Do (@dvkndn): nvmrc를 node 8로 업데이트 PR #67183
- Ashwin Ramaswami (@epicfaace)
- Phil (@flurmbo): md 이미지 링크 감지 PR #66958
- li zixiang (@fuafa): findModel.test.ts에 엄격한 null 검사 추가 PR #66436
- Gabriel Arjones (@g-arjones): #59635 수정 PR #60111
- @g1tman: 터미널이 보이지 않을 때 크기 조절 시 터미널에서 글꼴을 가져오지 않음 PR #66781
- Gabriel DeBacker (@GabeDeBacker): VSCode의 프로세스 환경을 무시하도록 터미널 생성 허용 PR #64733
- Chris Ganga (@gangachris)
- src/vs/base/test/common/async.test.ts에 대한 엄격한 null 검사 활성화 PR #65442
- ./vs/base/test/common/keyCodes.test.ts에 대한 엄격한 null 검사 활성화 PR #65454
- ./vs/base/test/common/octicon.test.ts에 대한 엄격한 null 검사 활성화 PR #65458
- ./vs/base/test/node/config.test.ts에 대한 엄격한 null 검사 활성화 PR #65471
- ./vs/base/test/common/event.test.ts에 대한 엄격한 null 검사 활성화 PR #65444
- ./vs/base/test/common/history.test.ts에 대한 엄격한 null 검사 활성화 PR #65453
- windowsFinder에 대한 엄격한 null 검사 활성화 PR #65551
- 찾기 컨트롤러에 대한 엄격한 null 검사 활성화 PR #65553
- Gaurav Gupta (@gaurav5430): ./vs/platform/contextkey/test/common/contextkey.test.ts에 대한 엄격한 null 검사 활성화 PR #65474
- Guy Waldman (@guywald1): [git] 특정 ref에서 브랜치 생성 명령 추가 PR #59078
- Henk Mollema (@henkmollema): 저작권 연도를 2019년으로 업데이트 PR #65875
- Ilya Biryukov (@IlyaBiryukov): Git 로그, globalConfig, 트리 diff API 추가 PR #64826
- James Dinh (@jamesdinht): 파일 테스트에 대한 엄격한 null 검사 활성화 PR #65249
- James George (@jamesgeorge007): 사용자 스니펫에 여러 줄 설명 지원 추가 PR #66159
- Jimi (Dimitris) Charalampidis (@JimiC): [테마] 편집기 다시 시작 없이 테마를 다시 로드하는 기능 추가 PR #66115
- Julia McGeoghan (@jkmdev)
- Joseph Duchesne (@josephduchesne): xtermjs 버그를 해결하기 위한 레이아웃 새로 고침 트리거로 #58159 수정… PR #60221
- Josh Goldberg (@JoshuaKGoldberg)
- Krish De Souza (@Kedstar99)
- Kermit Xuan (@Kermit-Xuan)
- Claire (@krider2010): 업데이트를 완전히 비활성화하거나 수동으로 설정하고 자동 설정도 가능하게 함 PR #60973
- Kumar Harsh (@kumarharsh): fix(loc): 투명 색상 설명에 대한 잘못된 문구 수정 PR #66334
- Anton Marchenko (@marchenko-am): #64379 수정 - SimpleFindWidget 위치 변경 (숨겨진 상태) PR #64558
- Mathias Rasmussen (@mathiasvr): HTML 스니펫: 일관된 void 태그 PR #66072
- Maksymilian Barnaś (@maxbarnas): #61410 "폴더에서 찾기" 작업에 대한 키 바인딩 추가 PR #61526
- Mrigank Krishan (@Mrigank11): 알려진 대용량 폴더를 .gitignore에 추가하도록 요청, #44304 수정 PR #44562
- J.M. Rütter (@mynetx): 터미널 분할 시 잠시 나타나는 undefined 제목 숨기기 PR #61981
- Néstor Hernández Ojeda (@nesukun): 강제 푸시를 위한 scm/git 컨텍스트 메뉴 항목 추가 PR #60387
- Noj Vek (Manoj P) (@nojvek): #27107 수정 - 링크에 대한 사용자 터미널의 cwd PR #64750
- Nuno Lopes (@nunottlopes): Windows에서 공백이 포함된 경로에서 현재 파일을 터미널에서 실행하는 문제 수정 PR #65331
- Oleg Voloshin (@oniondomes): workspaceStats 테스트에 대한 엄격한 null 검사 활성화 PR #65429
- Raul Piraces Alastuey (@piraces): suggestMemory.test.ts에 엄격한 null 검사 추가 PR #66754
- Prateek Singh (@punteek): simpleServices 테스트에 대한 엄격한 null 검사 활성화 PR #65571
- Rich Evans (@rcbevans): xterm mouseleave를 추가하여 위젯 닫기 PR #66576
- Matthias Reitinger (@reima): 키 바인딩 목록 헤더 동작 관련 문제 수정 (#_41558) PR #60217
- Romain Marcadier-Muller (@RomainMuller): 참조가 사용될 때 "tsc watch" 태스크 수정 PR #67148
- Rudi Chen (@rudi-c): breadcrumbs.ts, outlineModel.ts, breadcrumbsModel.ts에 strictNullChecks 활성화 PR #65062
- Segev Finer (@segevfiner)
- @SimonEggert: 탭 닫기 순서에 대한 설정 추가 PR #66635
- Prabhanjan S Koushik (@skprabhanjan)
- Tereza Tomcova (@the-ress): bootstrap.js에서 UNC 경로 올바르게 처리 PR #66128
- Tiago Ribeiro (@TiagoR98): 기능 #24344 구현 PR #65072
- Tyler James Leonhardt (@TylerLeonhardt): 단일 따옴표만 있고 공백이 없는 경우의 엣지 케이스 처리 PR #66359
- Alexander (@usernamehw)
- 비교기 테스트에 대한 엄격한 null 검사 활성화 PR #65301
- TM 위젯 검사에 대비 대비율 추가 PR #64495
- quickOpenScorer 테스트에 대한 엄격한 null 검사 활성화 PR #65299
- 중괄호 안으로 커서 이동 PR #67164
- 사용자 설정을 butchering하는 대신 commandsToSkipShell을 제외/포함 PR #66179
- 알림 테스트에 대한 엄격한 null 검사 활성화 PR #65291
- snippetVariables 테스트에 대한 엄격한 null 검사 활성화 PR #65236
- SplitView 테스트에 대한 엄격한 null 검사 활성화 PR #65307
- 테마/아이콘 테마 필터 뒤에 공백 추가 PR #64745
- GridView 테스트에 대한 엄격한 null 검사 활성화 PR #65305
- 더티 상태가 위쪽 테두리에 강조 표시될 때 탭 닫기 버튼을 완전히 숨김 PR #64718
- Dipen Ved (@vedipen)
- @vemoo: 이름이 지정된 여러 줄 문제 패턴 구문 분석 수정 PR #65840
- Vladimir Kotikov (@vladimir-kotikov):
git pull을 수행하기 전에 변경 사항을 자동으로 stash하는 옵션 추가 PR #59849 - Jeremy Shore (@w9jds): #57910 수정 - 자동 가져오기 시간 초과에 대한 설정 추가 PR #59988
- Matthew Walinga (@walinga): 줄 스테이징 명령 사용 시 빈 마지막 줄 제거 스테이징 PR #59974
- Yisrael Veller (@YisraelV)
vscode-eslint 기여
- Jonathan T L Lee (@Lee182): 이슈 529, pnpm 지원 추가 PR #572
- Loune Lam (@loune): disable-eslint 수정 및 개선 PR #588
language-server-protocol 기여
- Laurent Tréguier (@LaurentTreguier): 중복된 레이블 속성 제거 PR #638
- Jason Axelson (@axelson): 변경 로그 링크 수정 PR #654
vscode-languageserver-node에 기여
- Daniel McNab (@DJMcNab):
- Felix Becker (@felixfbecker): package.json에 repository.directory 필드 추가 PR #439
- Laurent Tréguier (@LaurentTreguier): 구성이 항상 리소스 범위를 사용하지 않는 문제 수정 PR #446
- Aleksey Kladov (@matklad): README에
npm run symlink언급 PR #452
debug-adapter-protocol에 기여
- Ben Jackson (@puremourning): vimspector를 구현 목록에 추가 PR #21
- Sean Allred (@vermiculus): 개요의 다양한 오타 수정 PR #22
vscode-vsce 기여
- Alexander (@usernamehw): 콘솔 메시지에 색상 추가 PR #324
vscode-json-languageservice 기여
vscode-css-languageservice에 대한 기여
- Krister Kari (@kristerkari): :export 블록 내의 알 수 없는 속성에 대한 경고 방지 PR #137
- Simon Chan (@yume-chan)
- Matthew Dean: Less root 함수, 조회, 익명 믹스인 지원 PR #135
vscode-html-languageservice에 대한 기여
- Liam Newman (@bitwiseman): 1.9.0-beta1로 업데이트 PR #43
vscode-generator-code에 대한 기여
- Aurélien Pupier (@apupier): markdownLint 지침에 따라 줄 바꿈 #154 PR #155
vscode-recipes에 기여
- Alan Agius (@alan-agius4): docs: ng test 명령 업데이트 PR #179
- Bryan Chapel (@bryanchapel): README.md 업데이트 PR #176
- @CannibalKush: angular 흐름 수정 PR #177
- zhan ishzhanov (@janat08): JEST 레시피에 대한 인수 분할 PR #174
localization 기여
600명 이상의 Cloud + AI 지역화 커뮤니티 멤버가 Microsoft Localization Community Platform (MLCP)을 사용하고 있으며, Visual Studio Code에 약 100명의 활성 기여자가 있습니다.
새로운 번역 제공, 번역 투표 또는 프로세스 개선 제안 등 귀하의 기여에 감사드립니다.
다음은 기여자의 스냅샷입니다. 프로젝트에 대한 자세한 내용과 기여자 이름 목록을 보려면 프로젝트 사이트(https://aka.ms/vscodeloc)를 방문하십시오.
- 불가리아어: Любомир Василев.
- 체코어: Samuel Tulach.
- 덴마크어: Johan Fagerberg.
- 네덜란드어: Jos Verlinde, Eric Algera.
- 핀란드어: Petri Niinimäki, Valtteri Vatanen.
- 프랑스어: Mohamed Sahbi, Thomas Gouthière.
- 독일어: Frank Lindecke, Hans Meiser, Jakob von der Haar, Sebastian Seidl.
- 히브리어: Kyle Orin.
- 힌디어: Satish Yadav, nirav adatiya, shaswat rungta, Dhanvi Kapila.
- 헝가리어: Péter Nagy.
- 중국어 간체: 叶 福永, Xiangrui Kong, Licheng Ren, Young Bige, 陈 文, Y F, 刘 彦佐, 谭 九鼎.
- 인도네시아어: Azhe Kun.
- 이탈리아어: Michael Longo.
- 일본어: nh, MASAKAZU TENMYO, 知念 裕子.
- 한국어: 정승진.
- 노르웨이어: Stephan Eriksen.
- 폴란드어: grzegorz m, Jakub Jedryszek.
- 포르투갈어 (브라질): Bruno Talanski, Alan Willian, Letticia Nicoli, Alessandro Fragnani, Cynthia Zanoni.
- 포르투갈어 (포르투갈): Vitor Barbosa.
- 스페인어: Engel Aguilar, José María Aguilar, julian3xl, Alvaro Enrique Ruano, Ing. Sergio Uziel Tovar Lemus, Mario Mendieta.
- 타밀어: Mani M.
- 터키어: Muhammed Emin TİFTİKÇİ.
- 우크라이나어: Did Kokos.
- 베트남어: Việt Anh Nguyễn.