2019년 4월 (버전 1.34)
다운로드: Windows: x64 | Mac: Intel | Linux 64비트: deb rpm tarball snap | 32비트: deb rpm tarball
Visual Studio Code의 2019년 4월 릴리스에 오신 것을 환영합니다. 4월에는 원격 개발 확장 프로그램의 미리 보기 릴리스에 집중했습니다. 이 확장 프로그램을 사용하면 원격 머신 또는 VM에서 SSH를 통해, Linux용 Windows 하위 시스템(WSL)에서 또는 Docker 컨테이너 내에서 VS Code를 사용할 수 있습니다. 자세한 내용은 Visual Studio Code를 사용한 원격 개발 블로그 게시물을 읽어보세요.
이번 버전에는 여러 업데이트와 커뮤니티의 많은 기여가 포함되어 있어 여러분이 좋아하시기를 바랍니다.
이 릴리스 노트를 온라인으로 읽으려면 code.visualstudio.com의 업데이트로 이동하십시오.
편집기
안정적인 CodeLens
VS Code는 이제 CodeLens 위치를 미리 캐시하고 편집기 전환 직후에 복원합니다. 이로 인해 편집기 전환 시 CodeLens 줄이 약간 이동하는 문제가 해결되었습니다.

언어
벤더 접두사가 붙은 CSS 속성 값 순위 하락
하이픈 '-' (예: -moz-grid 또는 -ms-grid)으로 접두사가 붙은 CSS 속성 값은 이제 자동 완성에서 grid 뒤에 옵니다.
디버깅
debug.showSubSessionsInToolBar
디버그 도구 모음에서 디버그 하위 세션을 표시할지 여부를 제어하는 debug.showSubSessionsInToolBar 설정을 도입했습니다. 이 설정이 false이면 하위 세션의 중지 명령은 상위 세션도 중지합니다. 이 설정의 기본값은 false입니다.
작업
모든 작업 종료
작업: 작업 종료 명령에 여러 작업이 실행 중일 때 모든 작업을 종료하는 새 옵션이 추가되었습니다. 이 작업을 자주 수행하는 경우 terminateAll 인수를 사용하여 명령에 대한 키보드 바로가기를 만들 수 있습니다.
{
"key": "ctrl+k t",
"command": "workbench.action.tasks.terminate",
"args": "terminateAll"
}
문제 패널 자동 표시
새로운 revealProblems 작업 속성을 사용하면 문제 패널을 자동으로 표시할 수 있습니다. 속성 값은 always, never, onProblem입니다.
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "watch",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"reveal": "always",
"revealProblems": "onProblem"
}
}
]
}
확장 프로그램 기여
미리 보기: 원격 개발
❗ 참고: 원격 개발 확장 프로그램은 Visual Studio Code Insiders가 필요합니다.
Visual Studio Code 원격 개발을 사용하면 컨테이너, 원격 머신 또는 Linux용 Windows 하위 시스템(WSL)을 완전한 기능을 갖춘 개발 환경으로 사용할 수 있습니다.
원격 개발 확장 프로그램 팩의 확장 프로그램은 VS Code가 로컬에서 실행될 때와 동일한 느낌을 유지하면서 원격 작업 공간의 컨텍스트에서 실행됩니다.
Vetur
Vue의 템플릿 보간 영역 내 JavaScript 식에 대한 의미 체계 진단, 호버 정보, 정의로 이동, 참조 찾기를 제공하는 Vetur 확장 프로그램이 이제 추가되었습니다.

이 기능에 대한 자세한 내용은 Vetur 설명서에서 확인할 수 있습니다.
기타 개선 사항으로는 메모리 사용량 감소 및 가져오기 경로 완성 기능이 있습니다. 자세한 내용은 Vetur 변경 로그에서 확인할 수 있습니다.
확장 프로그램 작성
다중 확장 프로그램 디버깅
이번 마일스톤에서는 한 번에 여러 확장 프로그램을 디버깅하는 기능을 추가했습니다. 이는 서로 긴밀하게 결합되거나 상호 의존적인 확장 프로그램 집합을 개발하는 경우 유용합니다.
이전에는 이 기능이 VS Code의 명령줄 인터페이스를 통해서만 사용할 수 있었지만, 이제 --extensionDevelopmentPath 인수를 여러 번 지정할 수 있습니다. 일반적으로 --extensionDevelopmentPath는 확장 프로그램의 시작 구성에서 사용됩니다. 여러 확장 프로그램을 개발하는 경우 개별 확장 프로그램 프로젝트를 다중 폴더 작업 공간으로 결합하고 개별 확장 프로그램에 대해 여러 --extensionDevelopmentPath 인수를 사용하는 새 시작 구성을 생성하는 것이 좋습니다(작업 공간 .code-workspace 파일에 저장됨).
두 개의 확장 프로그램, hello1 및 hello2, 그리고 두 확장 프로그램에 대한 단일 시작 구성을 포함하는 예시 작업 공간 .code-workspace 파일입니다.
{
"folders": [{ "path": "hello1" }, { "path": "hello2" }],
"launch": {
"configurations": [
{
"type": "extensionHost",
"request": "launch",
"name": "Launch Two Extensions",
"args": [
"--extensionDevelopmentPath=${workspaceFolder:hello1}",
"--extensionDevelopmentPath=${workspaceFolder:hello2}"
],
"outFiles": [
"${workspaceFolder:hello1}/out/**/*.js",
"${workspaceFolder:hello2}/out/**/*.js"
]
}
]
}
}
참고: 이번 릴리스에서는 개별 확장 프로그램 프로젝트의 preLaunchTask를 결합하여 두 확장 프로그램을 모두 빌드하는 preLaunchTask를 만드는 것이 불가능합니다.
알림의 명령 링크
[link name](http://link) 구문을 사용하여 알림 메시지에 링크를 포함하는 것은 항상 가능했지만, 이는 브라우저에서 열리는 링크에만 작동했습니다. 이제 [link name](command:<command id>) 구문을 사용하여 링크에서 명령을 호출할 수도 있습니다. 제공된 식별자가 있는 명령은 사용자가 링크를 클릭하면 트리거됩니다.
알림의 링크에 제목 추가 가능
이제 알림의 링크에 사용자가 링크 위에 마우스를 올렸을 때 표시되는 제목을 추가할 수 있습니다. 구문은 [link name](link "<the title>")입니다.
제안된 확장 API
각 마일스톤에는 새로운 제안 API가 포함되며 확장 작성자는 이를 시험해 볼 수 있습니다. 언제나처럼 여러분의 피드백을 기다립니다. 제안된 API를 시험해 보려면 다음 단계를 따르세요.
- 제안된 API는 자주 변경되므로 Insiders를 사용해야 합니다.
- 확장의
package.json파일에 이 줄이 있어야 합니다:"enableProposedApi": true. - 최신 버전의 vscode.proposed.d.ts 파일을 프로젝트로 복사하세요.
제안된 API를 사용하는 확장은 게시할 수 없습니다. 다음 릴리스에서 호환되지 않는 변경이 발생할 수 있으며 기존 확장에 문제가 발생하는 것을 원하지 않습니다.
vscode.workspace.workspaceFile
작업 공간 파일의 위치를 반환하는 새 작업 공간 속성이 있습니다. 예: file:///Users/name/Development/myProject.code-workspace 또는 아직 저장되지 않아 이름이 없는 작업 공간의 경우 untitled:1555503116870.
열려 있는 워크스페이스에 따라 값은 다음과 같습니다.
- 작업 공간이 없거나 단일 폴더가 열려 있는 경우
undefined. - 작업 공간 파일의 경로를
Uri로 반환합니다.
작업 공간이 이름 없는 경우 반환된 URI는 untitled: 스키마를 사용합니다.
작업 공간 파일 위치의 한 가지 용도는 vscode.openFolder 명령을 호출하여 작업 공간을 닫은 후 다시 여는 것입니다.
vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);
참고: workspace.workspaceFile 위치를 사용하여 구성 데이터를 파일에 직접 쓰는 것은 권장되지 않습니다. workspace.getConfiguration().update()를 사용할 수 있으며, 이는 단일 폴더가 열려 있거나 이름 없는 작업 공간 또는 저장된 작업 공간 모두에서 작동합니다.
머신별 설정
실행 파일 경로를 사용자 지정할 수 있는 설정이 있고 이러한 경로가 실행되는 머신에 따라 범위를 지정해야 하는 경우, 이제 이러한 설정을 machine 범위로 분류할 수 있습니다. 확장 프로그램 작성자는 configuration 확장 프로그램 지점에 기여할 때 scope 속성을 설정합니다. 머신별 설정은 사용자 설정에 대해서만 구성할 수 있습니다.
"configuration": {
"title": "Git",
"properties": {
"git.path": {
"type": [
"string",
"null"
],
"markdownDescription": "Path and filename of the git executable.",
"default": null,
"scope": "machine"
}
}
}
엔지니어링
로컬 파일에 대한 파일 시스템 공급자 재작성
확장 프로그램은 사용자 지정 리소스에 대한 자체 파일 시스템 구현을 제공할 수 있었습니다(여기서 자세히 읽어보기). 그러나 VS Code 자체의 로컬 파일 구현은 동일한 확장 프로그램 API로 구현되지 않았습니다. 이로 인해 확장 프로그램에서 오는 리소스와 비교하여 로컬 파일 리소스를 처리할 때 미묘한 차이가 발생했습니다. 지난 두 마일스톤 동안, 일관성을 위해 로컬 파일 시스템 공급자를 재작성했습니다.
새로운 문서
Python Azure Functions
Python 서버리스 Azure Functions를 생성하고 배포하는 방법을 설명하는 새로운 Python을 Azure Functions에 배포 튜토리얼이 있습니다.
기타
언어 서버 프로토콜
언어 서버 프로토콜에서 다음 새 기능에 대한 지원을 제안했습니다.
- 선택 범위: 위치 배열에 대한 선택 범위를 계산합니다. 클라이언트에서 서버로 전송됩니다.
- 호출 계층 구조: 주어진 기호에 대한 호출 계층 구조를 계산합니다. 클라이언트에서 서버로 전송됩니다.
- 진행률: 서버에서 진행률 보고를 시작합니다. 서버에서 클라이언트로 전송됩니다.
새 기능은 vscode-languageclient 및 vscode-languageserver npm 모듈의 다음 버전에서 사용할 수 있습니다.
주요 수정 사항
- 48259: 탐색기가 FileSystemProvider의 휴지통 기능 존중
- 68276: 긴 스레드 이름에 대한 호출 스택 "중단점에서 일시 중지" UI가 표시되지 않음
- 69603: Mac OS에서 터미널 창이 충돌합니다.
- 72110: 디버그 콘솔이 불필요하게 줄 바꿈을 렌더링합니다.
- 71737: 디버그 창에서 스크롤이 이상하게 작동합니다.
- 71588: 탐색기에서 파일 표시 오류
- 70492: "실행 중인 확장 프로그램"의 "문제 보고" 버튼이 수십 개의 중복 문제를 발생시킵니다.
감사합니다
마지막으로, VS Code를 더욱 발전시키는 데 도움을 준 다음 분들께 진심으로 감사드립니다.
이슈 추적에 대한 기여. 문제를 관리하는 데 도움이 되기를 원하시면 커뮤니티 이슈 추적 페이지를 참조하세요.
- John Murray (@gjsjohnmurray)
- Prabhanjan S Koushik (@skprabhanjan)
- Alexander (@usernamehw)
- Muhammed Emin TİFTİKÇİ (@jaqra)
- Carl Morris (@msftrncs)
vscode 기여
- @alpalla: #27041 수정 PR #72015
- @BaluErtl: 개요 서랍 기본 메시지의 잘못된 문구 PR #73214
- @cmchumak: 작업 공간 없이 작업을 실행할 때 메시지 개선 PR #71476
- Connor Shea (@connorshea): 포맷터 드롭다운에 extensionId를 설명으로 표시 PR #71910
- Alexandr Fadeev (@fadeevab): Makefile 테스트 케이스: 레시피에서 "@,-,+" 색상화 버그 수정 PR #72265
- Nikita Shilnikov (@flash-gordon): 지역화 키의 오타 수정 PR #72718
- Hung-Wei Hung (@hwhung0111): code-cli.bat의 오타 수정 PR #73091
- Ian Sanders (@iansan5653): 디버그 콘솔에서 8비트 및 24비트 ANSI 이스케이프 색상 코드 지원 추가 PR #70935
- Muhammed Emin TİFTİKÇİ (@jaqra): '제목 대문자 변환'이라는 제목 대문자 변환 명령 추가. PR #70990
- Jimi (Dimitris) Charalampidis (@JimiC): [테마] 새로 고침 시 탐색기 화살표 알림 수정 PR #71855
- Jon Bockhorst (@jmbockhorst)
- Johannes Wikman (@jwikman): 파일에서 찾기 작업을 명령으로 변환하고 인수 수락 PR #71626
- Jiaxun Wei (@LeuisKen): #72187 수정 PR #72194
- Luís Ferreira (@ljmf00): theme-monokai: 탭 들여쓰기 수정 PR #72269
- paul cheung (@paul-cheung): 오타 수정 PR #72334
- Evan Bovie (@phaseOne): links.ts의 knownSchemes에
vscode:URI 접두사 추가 PR #71416 - Raman (@ramank775): "주석 상자 문제 #71703" 수정 PR #71880
- Samuel Bronson (@SamB): json-language-features/CONTRIBUTING.md 수정 PR #73273
- @sebastianwitthus: 44146 문제 패널 자동 표시 PR #71387
- Simon Siefke (@SimonSiefke): 오타 수정 PR #71564
- Prabhanjan S Koushik (@skprabhanjan): fix-71570 삭제된 파일에 대한 마크다운 미리 보기 복원 시 오류 PR #71762
- Tony Xia (@tony-xia)
- Alexander (@usernamehw): 웹뷰에서 부드러운 스크롤을 비활성화할 수 있는 CLI 플래그 추가 PR #65422
- Vitaliy Mazurenko (@vitaliymaz)
- Waleed Ashraf (@WaleedAshraf): LINE_COLON_PATTERN에서 후행 공백 무시 PR #71985
- William Whittle (@whittlec): 'qsh'를 유효한 쉘 스크립트 첫 줄로 추가 PR #73231
- Keyi Xie (@xiekeyi98): build/의 철자 오류 수정 PR #71977
- XTY (@xtydev): WSL 시작 스크립트의 회귀 문제 해결 PR #72779
vscode-css-languageservice에 대한 기여
- Tony Xia (@tony-xia): 작은 오타 수정 PR #151
vscode-html-languageservice에 대한 기여
- Liam Newman (@bitwiseman): js-beautify를 1.9.1로 업데이트 PR #58
- Christian Oliff (@coliff): 속성 오타 수정 PR #60
node-jsonc-parser에 대한 기여
- Tony Xia (@tony-xia): JavaScipt -> JavaScript PR #18
language-server-protocol 기여
- Danny Tuppeny (@DanTup): 클라이언트가 편집을 적용하지 못한 이유에 대한 선택적 이유 추가 PR #637
- Ben Mewburn (@bmewburn): lsif textDocument/definition 예제에서 ID 수정 PR #725
vscode-languageserver-node에 기여
- Igor Matuszewski (@Xanewok): 제안된 window/progress 확장 추가 PR #261
- Aleksey Kladov (@matklad): selectionRange API 조정 PR #474
- Ben Mewburn (@bmewburn): onImplementation 및 onTypeDefinition은 DefinitionLink[]를 반환할 수 있습니다. PR #479
- Remy Suen (@rcjsuen): 작은 오타 수정 PR #482
vscode-eslint 기여
- Mike Martin (@mcmar):
changeProcessCWD문서 명확화 PR #657 - Ilias Tsangaris (@ilias-t): PR #661
- Charles Stover (@CharlesStover): eslint.codeAction.disableRuleComment에 대한 자동 완성은 newLine 대신 separateLine을 삽입해야 합니다. PR #674
vscode-lsif-extension에 대한 기여
- Chris Wendt (@chrismwendt): 최상위 파일에 대한 파일 시스템 조회 수정 PR #9
vscode-textmate에 기여
vscode-recipes에 기여
- AJ Alves (@zerokol): rspec 파일의 특정 사례 디버깅 PR #207
vscode-vsce 기여
- Jimi (Dimitris) Charalampidis (@JimiC): 컴파일 작업 수정 PR #347
localization 기여
Microsoft Localization Community Platform(MLCP)을 사용하는 800명 이상의 Cloud + AI 지역화 커뮤니티 회원과 Visual Studio Code에 약 100명의 활성 기여자가 있습니다.
새로운 번역 제공, 번역 투표 또는 프로세스 개선 제안 등 귀하의 기여에 감사드립니다.
다음은 기여자의 스냅샷입니다. 프로젝트에 대한 자세한 내용과 기여자 이름 목록을 보려면 프로젝트 사이트(https://aka.ms/vscodeloc)를 방문하십시오.
- 보스니아어: Ismar Bašanović.
- 체코어: Daniel Padrta, David Jareš, Jan Hajek, Jiří Hofman.
- 덴마크어: Allan Kimmer Jensen, Thomas Larsen.
- 네덜란드어: Maxim Van Damme, Sven Klaasen.
- 영국 영어: Martin Littlecott, Tobias Collier, William Wood, Giorgi Jambazishvili.
- 프랑스어: Antoine Griffard, Thierry DEMAN-BARCELÒ, Mohamed Sahbi, Steven Dugois, Michael VAUDIN.
- 독일어: Christof Opresnik.
- 힌디어: Abhirav Kushwaha, Pramit Das.
- 중국어 간체: paul cheung, 斌 项, Fan Su, Justin Liu, Horie Yuan, 王文杰, 赵畅畅, anson zhang, Wang Debang, Pluwen, Yiting Zhu, Joel Yang, Michael Zhang, 擎 钟, 涛 徐, 少民 谈, 伟 全, panda small, Array Zhang, LI ZHAO.
- 중국어 번체: 謝政廷, 煾 雪.
- 헝가리어: Levente Hallai Seiler.
- 인도네시아어: Laurensius Dede Suhardiman.
- 이탈리아어: Alessandro Alpi, Luigi Bruno, Emanuele Meazzo, Marco Dal Pino.
- 일본어: EbXpJ6bp -, nh, Kyohei Uchida, Yoshihisa Ozaki, Seiji Momoto, Hasefumi, 迪人 熊本, Koichi Makino, Kyohei Moriyama, 美穂 山本, Aya Tokura.
- 한국어: 형섭 이, Youngjae Kim, siin lee, Keunyop Lee.
- 라트비아어: Kaspars Bergs.
- 리투아니아어: Augustas Grikšas.
- 폴란드어: Wojciech Maj, Marek Biedrzycki, Igor 05, Marcin Weksznejder, Szymon Seliga, Paweł Modrzejewski, Michał Stojke, Artur Zdanowski.
- 포르투갈어(브라질): Alessandro Trovato, Judson Santiago, Roberto Fonseca, Marcelo Fernandes, Lucas Miranda, Ray Carneiro, Loiane Groner, Daniel Luna, Lucas Santos, Saymon Damásio.
- 포르투갈어(포르투갈): Ana Rebelo, Pedro Teixeira, João Carvalho, Tiago Antunes.
- 루마니아어: Alexandru Staicu.
- 러시아어: Andrey Veselov, Дмитрий Кирьянов, nata kazakova, Валерий Батурин.
- 스페인어: Andy Gonzalez, Carlos Mendible, José María Aguilar, Alvaro Enrique Ruano.
- 타밀어: Boopesh Kumar, Karunakaran Samayan, Merbin J Anselm.
- 터키어: mehmetcan gun, Sinan Açar, S. Ferit Arslan.
- 우크라이나어: Sviatoslav Ivaskiv, George Molchanyuk.
- 베트남어: Khôi Phạm, Spepirus Shouru, Việt Anh Nguyễn.