일반적인 기능
일반 기능은 확장의 중요한 빌딩 블록입니다. 거의 모든 확장이 이러한 기능 중 일부를 사용합니다. 이를 활용하는 방법은 다음과 같습니다.
명령
명령은 VS Code 작동 방식의 중심입니다. 명령 팔레트를 열어 명령을 실행하고, 사용자 지정 키 바인딩을 명령에 연결하고, 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴에서 명령을 호출합니다.
확장은 다음을 수행할 수 있습니다.
vscode.commandsAPI를 사용하여 명령을 등록하고 실행합니다.contributes.commands기여 지점을 사용하여 명령을 명령 팔레트에서 사용할 수 있도록 합니다.
확장 가이드 / 명령 주제에서 명령에 대해 자세히 알아봅니다.
구성
확장은 contributes.configuration 기여 지점을 사용하여 확장별 설정을 제공하고 workspace.getConfiguration API를 사용하여 읽을 수 있습니다.
키 바인딩
확장은 사용자 지정 키 바인딩을 추가할 수 있습니다. contributes.keybindings 및 키 바인딩 주제에서 자세히 알아보세요.
컨텍스트 메뉴
확장은 마우스 오른쪽 버튼을 클릭할 때 VS Code UI의 다른 부분에 표시되는 사용자 지정 컨텍스트 메뉴 항목을 등록할 수 있습니다. contributes.menus 기여 지점에서 자세히 알아보세요.
데이터 저장
데이터 저장을 위한 다섯 가지 옵션이 있습니다.
ExtensionContext.workspaceState: 키/값 쌍을 작성할 수 있는 작업 영역 저장소입니다. VS Code는 저장소를 관리하며 동일한 작업 영역이 다시 열릴 때 복원합니다.ExtensionContext.globalState: 키/값 쌍을 작성할 수 있는 전역 저장소입니다. VS Code는 저장소를 관리하며 각 확장 활성화 시 복원합니다.globalState의setKeysForSync메서드를 사용하여 동기화할 키를 설정하여 전역 저장소의 키/값 쌍을 선택적으로 동기화할 수 있습니다.ExtensionContext.storageUri: 확장이 읽기/쓰기 액세스 권한을 갖는 로컬 디렉토리를 가리키는 작업 영역별 저장소 URI입니다. 현재 작업 영역에서만 액세스할 수 있는 대용량 파일을 저장해야 하는 경우 좋은 옵션입니다.ExtensionContext.globalStorageUri: 확장이 읽기/쓰기 액세스 권한을 갖는 로컬 디렉토리를 가리키는 전역 저장소 URI입니다. 모든 작업 영역에서 액세스할 수 있는 대용량 파일을 저장해야 하는 경우 좋은 옵션입니다.ExtensionContext.secrets: 암호화될 비밀(또는 민감한 모든 정보)을 위한 전역 저장소입니다. 이러한 정보는 컴퓨터 간에 동기화되지 않습니다. 데스크톱용 VS Code의 경우 Electron의 safeStorage API를 활용합니다. 웹용 VS Code의 경우 이중 키 암호화(DKE) 구현을 사용합니다.
확장 컨텍스트는 확장 진입 파일의 activate 함수에서 사용할 수 있습니다.
setKeysForSync 예제
확장이 여러 컴퓨터에 걸쳐 사용자 상태를 유지해야 하는 경우 vscode.ExtensionContext.globalState.setKeysForSync를 사용하여 상태를 설정 동기화에 제공하세요.
다음 패턴을 사용할 수 있습니다.
// on activate
const versionKey = 'shown.version';
context.globalState.setKeysForSync([versionKey]);
// later on show page
const currentVersion = context.extension.packageJSON.version;
const lastVersionShown = context.globalState.get(versionKey);
if (isHigher(currentVersion, lastVersionShown)) {
context.globalState.update(versionKey, currentVersion);
}
컴퓨터 간 상태를 공유하면 사용자가 보거나 닫은 플래그를 공유하여 환영 또는 업데이트 페이지의 여러 인스턴스를 보는 문제를 방지하는 데 도움이 될 수 있습니다.
알림 표시
거의 모든 확장은 어느 시점에서든 사용자에게 정보를 표시해야 합니다. VS Code는 다른 심각도의 알림 메시지를 표시하기 위한 세 가지 API를 제공합니다.
빠른 선택
vscode.QuickPick API를 사용하면 사용자 입력을 쉽게 수집하거나 사용자가 여러 옵션 중에서 선택하도록 할 수 있습니다. QuickInput 샘플은 API를 설명합니다.
파일 선택기
확장은 window.showOpenDialog API를 사용하여 시스템 파일 선택기를 열고 파일 또는 폴더를 선택할 수 있습니다.
출력 채널
출력 패널은 OutputChannel 모음을 표시하며, 이는 로깅 목적에 매우 유용합니다. window.createOutputChannel API를 사용하여 쉽게 활용할 수 있습니다.
진행률 API
vscode.Progress API를 사용하여 사용자에게 진행률 업데이트를 보고할 수 있습니다.
ProgressLocation 옵션을 사용하여 다양한 위치에 진행률을 표시할 수 있습니다.
- 알림 영역
- 소스 제어 보기
- VS Code 창의 일반 진행률
진행률 샘플은 이 API를 보여줍니다.