Skip to content

Latest commit

 

History

History
executable file
·
240 lines (176 loc) · 11.5 KB

activation-events.md

File metadata and controls

executable file
·
240 lines (176 loc) · 11.5 KB
layout parent title nav_order description
default
References
Activation Events
3

활성화 이벤트

활성화 이벤트package.json Extension ManifestactivationEvents 부분에서 작성되는 JSON 선언의 모음 입니다. 익스텐션은 활성화 이벤트 가 일어날때 활성화 됩니다. 아래는 모든 사용 가능한 활성화 이벤트 의 목록입니다:

또한 [package.json extension manifest]의 모든 필드에 대하여 참조할 수 있는 내용을 제공합니다.

onLanguage

특정 언어로 해석되는 파일이 열릴때마다 이 활성화 이벤트가 발생하고, 연관된 익스텐션이 활성화 됩니다.

...
"activationEvents": [
    "onLanguage:python"
]
...

onLanguage 이벤트는 언어 식별자 값을 입력받습니다.

activationEvents 어레이에서 별도의 onLanguage 항목으로 여러 언어들을 선언 할 수 있습니다.

"activationEvents": [
    "onLanguage:json",
    "onLanguage:markdown",
    "onLanguage:typescript"
]
...

onCommand

커맨드가 실행 될때마다 이 활성화 이벤트는 실행되고 관련된 익스텐션이 활성화 될 것입니다:

...
"activationEvents": [
    "onCommand:extension.sayHello"
]
...

onDebug

디버그 세션이 시작되기전에 이 활성화 이벤트가 실행되고 관련된 익스텐션이 활성화 될 것입니다:

...
"activationEvents": [
    "onDebug"
]
...

onDebugInitialConfigurations

onDebugResolve

다음은 2개의 더욱 세밀한 onDebug 활성화 이벤트 입니다:

  • onDebugInitialConfigurationsDebugConfigurationProviderprovideDebugConfigurations메소드가 호출 되기 직전에 발생합니다.
  • onDebugResolve:type 는 특정한 타입에 대한 DebugConfigurationProviderresolveDebugConfiguration메소드가 호출 되기 직전에 발생합니다.

기본 원칙: 디버그 익스텐션 익스텐션이 가벼운 경우에는, onDebug를 사용하십시오. 만약 무거운 경우, DebugConfigurationProvider가 대응하는 메소드인 provideDebugConfigurations 혹은 resolveDebugConfiguration을 사용하는 지에 따라 onDebugInitialConfigurationsonDebugResolve를 사용하십시오. 이러한 메소드에 대한 더 자세한 내용은 Using a DebugConfigurationProvider를 참조하십시오.

workspaceContains

폴더가 열리고, 해당 폴더가 최소 1개 이상의 glob 패턴과 일치하는 파일을 포함하는 경우 이 활성화 이벤트가 실행되고 관련된 익스텐션이 활성화 될 것입니다.

...
"activationEvents": [
    "workspaceContains:**/.editorconfig"
]
...

onFileSystem

특정 scheme 의 파일이나 폴더를 읽을 때마다 이 활성화 이벤트가 실행되고 관련있는 익스텐션이 활성화 될 것입니다. 이는 일반적으로 file-체계 이지만, 커스텀 파일 시스템 제공자를 사용하여 ftpssh 같은 더 많은 체계를 허용 할 수 있습니다.

...
"activationEvents": [
    "onFileSystem:sftp"
]
...

onView

VS Code 사이드바에서 지정된 id의 뷰가 확장 될 때 마다 이 활성화 이벤트가 실행되고 관련된 익스텐션이 활성화 될 것입니다. (빌트인 뷰의 예시로는 익스텐션이나 소스 컨트롤이 있습니다)

아래의 활성화 이벤트는 nodeDependencies id를 가진 뷰가 보여질때마다 실행 될 것입니다:

...
"activationEvents": [
    "onView:nodeDependencies"
]
...

onUri

익스텐션에 해당하는 전-시스템 Uri가 열릴때마다, 이 활성화 이벤트가 실행되고 관련있는 익스텐션이 활성화 될 것입니다. Uri 의 형태는 vscodevscode-insiders 로 고정되어 있습니다. Uri의 권한은 반드시 익스텐션의 식별자 여야합니다. Uri의 나머지 부분은 임의적입니다.

...
"activationEvents": [
    "onUri"
]
...

만약 vscode.git 익스텐션이 onUri를 활성화 이벤트로 정의하는 경우, 다음 Uri가 열릴때마다 활성화 될 것입니다:

  • vscode://vscode.git/init
  • vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git
  • vscode-insiders://vscode.git/init (for VS Code Insiders)

onWebviewPanel

VS Code가 일치하는 viewType으로 웹 뷰를 복원할때마다 이 활성화 이벤트가 실행되고 관련있는 익스텐션이 활성화 될 것입니다.

예를 들어, 아래와 같은 onWebViewPanel 선언은:

"activationEvents": [
    ...,
    "onWebviewPanel:catCoding"
]

VS Code viewType : catCoding을 사용하여 웹 뷰를 복원 할때마다 익스텐션이 활성화 되게 할 것입니다. viewType은 window.createWebviewPanel 호출에서 설정되며 익스텐션을 처음 활성화 하고, 웹 뷰를 생성하기 위하여 다른 활성화 이벤트 (예시로, onCommand)가 있어야 합니다.

시작

* 활성화 이벤트는 VS Code 가 시작 될 때 실행되고 관련된 익스텐션이 활성화 될 것입니다. 최상의 사용자 경험을 위해, 익스텐션에서 다른 활성화 이벤트 조합이 작동하지 않는 경우에만 이 활성화 이벤트를 사용하십시오.

...
"activationEvents": [
    "*"
]
...

주의: 익스텐션은 여러개의 활성화 이벤트를 수신 할 수 있으므로, "*"를 수신하는 것이 좋습니다.

주의: 익스텐션은 반드시 메인 모듈에서 activate() 기능을 내보내야하며 이는 VS Code 에 의해 지정된 활성화 이벤트가 실행 되었을 경우에 한번만 실행 될 것입니다. 또한 익스텐션은 메인 모듈에서 deactivate()를 내보내야 하며 이를 통해 VS Code가 종료되었을때 정리 작업을 수행해야 합니다. 익스텐션은 정리작업이 비동기방식으로 실행 되는 경우 반드시 deactivate()로 부터 프로미스를 반환해야합니다. 정리가 동기방식으로 실행되는 경우 익스텐션은 deactivate()에서 undefined를 반환 할 수 있습니다.